Round-Robin-Proxyauswiel a Colly mat SetProxyFunc
Benotzt SetProxyFunc fir d'Round-Robin-Auswiel, an denkt un d'Auswierkunge vum Keep-Alive, vum Transport-Austausch an dem geklonte 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/")Benotzt github.com/gocolly/colly/v2 an säi proxy-Pak an der Funktioun vun der Applikatioun an halleft déi normal Fehlerbehandlung bäi. Konfiguréiert de Selekter, ier Ufroen oder asynchron Besich ufänken. D'HTTP-Proxy-Lëscht liwwert ëffentlech Kandidaten fir d'Endpoint-Inpute vum Ëmschalter.
SetProxy wielt en festen Endpoint; SetProxyFunc léisst den HTTP-Transport pro Ufro wielen. Doduercher gëtt vermidde, déi gedeelt Konfiguratioun an all OnRequest-Callback ze ersetzen.
An dëser Implementatioun setzt SetProxyFunc och DisableKeepAlives op true. Et aktualiséiert en existente *http.Transport, awer ersetzt en aneren Transporttyp duerch en neien HTTP-Transport. Bewahrt bewosst all ugepasst RoundTripper-Verhalen, amplaz unzehuelen, et iwwerlieft.
Collector.Clone deelt den HTTP-Backend, dofir kann d'Ännerung vum Proxy vun engem Klon deen gedeelten Backend änneren. Klärt d'Eegentum virun der gläichzäiteger Aarbecht. D'Round-Robin-Auswiel rotéiert déi ugebueden Endpointen, net verifizéiert ëffentlech Ausgangsidentitéiten oder onofhängeg gepréift Disponibilitéit.