Dewis procsi rownd-robin Colly gyda SetProxyFunc
Defnyddiwch SetProxyFunc ar gyfer dewis rownd-robin, gan ystyried effeithiau keep-alive, disodli transport a'r backend wedi'i glonio.
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/")Defnyddiwch github.com/gocolly/colly/v2 a'i becyn proxy yn swyddogaeth y rhaglen, gan gadw'r trin gwallau arferol. Ffurfweddwch y detholwr cyn i geisiadau neu ymweliadau asyncronaidd ddechrau. Mae'r rhestr procsi HTTP yn darparu ymgeiswyr cyhoeddus ar gyfer mewmbyr endpoint y newidiwr.
Mae SetProxy yn dewis endpoint sefydlog; mae SetProxyFunc yn gadael i'r transport HTTP ddewis fesul cais. Mae'n osgoi disodli'r ffurfweddiad a rennir y tu mewn i bob galwad yn ôl OnRequest.
Yn y gweithrediad hwn, mae SetProxyFunc hefyd yn gosod DisableKeepAlives yn true. Mae'n diweddaru *http.Transport presennol, ond yn disodli math gwahanol o transport â transport HTTP newydd. Cadwch unrhyw ymddygiad RoundTripper cyfaddas yn fwriadol yn hytrach na thybio y bydd yn goroesi.
Mae Collector.Clone yn rhannu'r backend HTTP, felly gall newid procsi clôn newid y backend a rennir hwnnw. Setlwch berchnogaeth cyn gwaith cyfochrog. Mae dewis rownd-robin yn cylchdroi'r endpoints a ddarperir, nid hunaniaethau ymadael cyhoeddus wedi'u gwirio na darpariaeth wedi'i harchwilio'n annibynnol.