Round-robin proxy-val í Colly við SetProxyFunc
Brúka SetProxyFunc til round-robin-val, við eyga fyri keep-alive, transport-avloysing 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/")Brúka github.com/gocolly/colly/v2 og proxy-pakkan hjá tí í funktiónini í applikatiónini, og varðveit vanliga feilhandfaring. Set valarin, áðrenn avbiðnir ella asynkron vitjanir byrja. HTTP-proxy-listin veitir almennar kandidatar til endpoint-innlit skiftisins.
SetProxy velur ein fastan endpoint; SetProxyFunc letur HTTP-transportin velja fyri hvørja avbiðn. Hetta forðar fyri at skifta deilda uppsetingina inni í hvørjum OnRequest-afturkalli.
Í hesi implementatión setur SetProxyFunc eisini DisableKeepAlives til true. Tað dagførir eitt verandi *http.Transport, men loysir ein annan transport-týpu av við ein nýggjan HTTP-transport. Varðveit tilvitað hvørja serstaka RoundTripper-atferð í staðin fyri at halda, at hon yvirlivir.
Collector.Clone deilir HTTP-backendinum, so at broyta proxy hjá einum klona kann broyta tann deilda backendin. Áset eigaraskap áðrenn samsíða arbeiði. Round-robin-val skiftir millum givnu endpointini, ikki váttaðar almennar útgongdarsamleikar ella óheft kannaða tøku.