Colly round-robin-proxyval med SetProxyFunc
Bruk SetProxyFunc til round-robin-val, med blikk for keep-alive, utskifting av transport og klona 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/")Bruk github.com/gocolly/colly/v2 og proxy-pakken i funksjonen til applikasjonen, og hald på vanleg feilhandsaming. Set opp veljaren før førespurnader eller asynkrone besøk byrjar. HTTP-proxylista gir offentlege kandidatar for endpoint-inndata til brytaren.
SetProxy vel eit fast endpoint; SetProxyFunc lèt HTTP-transporten velje per førespurnad. Det unngår å erstatta delt konfigurasjon inne i kvar OnRequest-callback.
I denne implementasjonen set SetProxyFunc også DisableKeepAlives til true. Det oppdaterer ein eksisterande *http.Transport, men erstattar ein annan transporttype med ein ny HTTP-transport. Ta vare på eit eventuelt tilpassa RoundTripper-åtferd med vilje i staden for å gå ut frå at det overlever.
Collector.Clone deler HTTP-backenden, så endring av proxyen til ein klon kan endre den delte backenden. Fastset eigarskap før samtidig arbeid. Round-robin-val rullerer dei oppgitte endpointa, ikkje stadfesta offentlege utgangsidentitetar eller uavhengig kontrollert tilgjenge.