我有一个应用程序,可以根据请求轮换代理。
目前我有一些代码:
func (mon *Monitor) MassUrlRetrieve(n int, url string) (respBytes []byte) {
funnel := make(chan []byte)
go ProductRetrieveTimeout(TIMEOUT_RETRIEVE_URL, funnel)
for i := 0; i < n; i++ {
go mon.WrapGetUrlToChannel(funnel, url)
}
return <- funnel
}
基本上发送多个请求,如果没有及时响应,则返回第一个请求响应/超时。
在WrapGetUrlToChannel
我创建一个新的代理网址,将其分配给mon
client.tr.Proxy
。
我的问题是 - 在请求飞行期间修改客户端的传输是否安全?或者为了安全,我应该为每个代理设置不同的传输和客户端,以确保它们不会干扰吗?
答案 0 :(得分:0)
使用竞赛探测器肯定表明我不应该修改传输。最后,我决定绕过* http.Transport而不是代理,并在发出并发请求时使用唯一的客户端。
感谢@Flimzy