限制并发线程的Curl

  • 本文关键字:Curl 线程 并发 php curl
  • 更新时间 :
  • 英文 :


在PHP中使用Curl时如何限制并发线程?

没有内置的东西可以使用,但是您可以存储当前活动会话的数量。当你打开一个curl会话时,你增加计数,当你收到响应并关闭会话时,你减少计数。

例如,您可以将计数存储在文件中。只需打开文件,读取计数,增加或减少它,然后再次保存在文件中

我使用的是shell_exec函数:

$max_threads = 30;
if(shell_exec('ps -ef | grep "curl" | wc -l') < $max_threads)) {  
    shell_exec('curl http://www.google.com');  
}

if语句将检查当前机器上与"curl"对应的工作线程数。

但这意味着您将通过shell_exec函数启动curl,而不是通过PHP API。

您可以使用curl_multi_*函数同时处理多个curl句柄,设置18个会话并一次执行它们。

阅读更多

最新更新