最近在写一个小东西做请求并发,用到 curl_multi_exec,发现个别 url 超时很久的时候,后丢失后面一部分 url
即加入我有 20 条 urls 并发请求时,前面 15 条响应很快,但是后面的 5 条因为该 url 的服务器问题,timeout 时间特别长,所以返回的这堆数据中,大概只能拿到 16 或 17 条 urls 的数据,后面都丢失了
不知大家有无遇到过这种情况?可有解决方法? 代码太乱,就先不贴了
1
fcka 2017-09-04 15:13:58 +08:00 via Android
PHP 默认执行时长限制为 30 秒
|
2
t333st OP |
3
2ME 2017-09-04 15:52:01 +08:00
减少并发条数试试
|
4
1010011010 2017-09-04 20:33:02 +08:00
大概是慢的那个服务器顶不住 5 次同时请求,只响应了一两条,其他的丢了
|
5
gouchaoer 2017-09-04 23:22:32 +08:00 via Android
用 guzzle 的并发,它包装的 multi_curl_*接口
|
7
lanwairen123 2017-09-05 12:47:35 +08:00 via Android
最近发现 php-curlmulti 很不错,用它的并发跑满了我 50m 的带宽,他封装的 multi_curl,接口比较简单,https://github.com/ares333/php-curlmulti
|