PHP 终止正在进行的多卷曲请求

PHP kill ongoing multi curl requests

如果其中一个请求收到状态代码 429,是否可以 kill/stop 多个 curl 请求?

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

这些请求是异步的,所以我不确定我该怎么做。

嗯,你应该可以用 CURLOPT_PROGRESSFUNCTION 随意取消它们,有一个全局变量来决定是否取消传输,一个导入它的函数(使用 global $var 语法), 并在需要取消时将其设置为 return 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。