PHP杀死正在进行的多卷曲请求

时间:2017-08-03 19:52:46

标签: php http curl nginx curl-multi

如果其中一个请求收到状态码429,是否可以终止/停止多个卷曲请求?

我一直试图找到解决方案,因为我从API中提取数据并且需要避免超过速率限制。

这些请求是异步的,因此我不确定如何执行此操作。

1 个答案:

答案 0 :(得分:1)

好吧,您应该可以使用CURLOPT_PROGRESSFUNCTION随意取消它们,使用全局变量来取消传输,使用导入它的函数(使用global $var语法),并使其返回1取消时间,例如$abort=false;ecurl_setopt($ch,CURLOPT_PROGRESSFUNCTION,function($a,$b,$c,$d,$e){global $abort;return (int)!$abort;}); - 然后只需使$ abort = true;什么时候中止他们。也就是说,你可以使用CURLOPT_MAX_RECV_SPEED_LARGE来限制转移的速度,如果你的速度限制超过

编辑:请注意,您还需要将CURLOPT_NOPROGRESS设置为false才能完全调用CURLOPT_PROGRESSFUNCTION。