PHP多线程CURL能力问题

时间:2010-06-23 14:49:31

标签: php curl exec

我有一个PHP脚本,可以归结为以下内容:

while ($arr = mysql_fetch_array($result))
{
   $url = $arr['url'];
   exec("curl $url > /dev/null &");
} 

$ url将代表一个远程脚本。

我的问题是,如果我尝试循环访问2,000个网址,我可以期待什么。

是否会打开许多​​CURL连接会破坏我的服务器? 我可以在不到一分钟的时间内全部开火吗?

我想要做的是阻止我的用户通过打开连接并为他们运行远程脚本来设置cronjobs。

你们可以提供建议吗?我今天离开了联盟。

哈德森

2 个答案:

答案 0 :(得分:3)

看看curl_multi_init。它不会触发多个进程,因此它应该在您的服务器上更柔和。

我建议你一次只能打3-15个,具体取决于服务器可以处理的负载和脚本的复杂程度。 2000年一次可能会让你用完文件描述符或其他限制。

答案 1 :(得分:1)

您需要密切关注opened files(连接)的数量,这样就不会达到服务器上的文件最大限制。