Ĉirkaŭvica prokselekto en Colly per SetProxyFunc
Uzu SetProxyFunc por ĉirkaŭvica elekto, konsiderante la efikojn de keep-alive, transporta anstataŭigo kaj klonita backend.
collector := colly.NewCollector()
switcher, err := proxy.RoundRobinProxySwitcher(
"http://proxy-a.example:8080",
"http://proxy-b.example:8080",
)
if err != nil {
return err
}
collector.SetProxyFunc(switcher)
err = collector.Visit("https://www.example.com/")Uzu github.com/gocolly/colly/v2 kaj ĝian pakaĵon proxy en la funkcio de la aplikaĵo, konservante normalan erartraktadon. Agordu la selektilon antaŭ ol petoj aŭ nesinkronaj vizitoj komenciĝos. La listo de HTTP-prokuroj provizas publikajn kandidatojn por la endpoint-enigoj de la ŝaltilo.
SetProxy elektas fiksan endpointon; SetProxyFunc permesas al la HTTP-transporto elekti por ĉiu peto. Tio evitas anstataŭigi la komunan agordon ene de ĉiu OnRequest-retrokuplo.
En ĉi tiu efektivigo, SetProxyFunc ankaŭ agordas DisableKeepAlives al true. Ĝi ĝisdatigas ekzistantan *http.Transport, sed anstataŭigas alian transportan tipon per nova HTTP-transporto. Konservu intence ajnan kutiman konduton de RoundTripper anstataŭ supozi, ke ĝi postvivos.
Collector.Clone dividas la HTTP-backendon, do ŝanĝi la prokuron de klono povas ŝanĝi tiun komunan backendon. Difinu posedrajtojn antaŭ samtempa laboro. Ĉirkaŭvica elekto rotacias la provizitajn endpointojn, ne kontrolitajn publikajn elirajn identecojn aŭ sendepende kontrolitan disponeblecon.