如何从终端运行多线程curl脚本?

时间:2012-08-10 08:01:19

标签: php multithreading cron cakephp-2.0 curl-multi

我使用了一个用于PHP的多卷曲库,便于并行获取多个页面(基本上是一个易于使用的API)。

My Scenario:从API获取用户数据,处理它并存储结果。必须提取其数据的所有用户都在队列中。整个提取,处理和整体存储结果大约需要8-10分钟。如果我同步处理它真的很贵。所以我使用php curl库进行多线程处理。如果我在浏览器中运行它,它的工作正常,但由于它的cron-job所以我必须使用命令行运行相同的脚本。当我这样做;不起作用。有谁能够帮我?提前谢谢。

Psuedo代码:

$query = " Fetch users based on certain criteria LIMIT 200" ; 
$result = execute-query ;

$curl_handle = curl_multi_init();
$i = 0;
$curl = array();

while ($row = mysql_fetch_assoc($result)) {    
    $curl[$i] = add_handle($curl_handle, API_CALL);
}

exec_handle($curl_handle);

for ($j = 0; $j < count($curl); $j++)//remove the handles
    curl_multi_remove_handle($curl_handle, $curl[$i]);

curl_multi_close($curl_handle);

//参考网址 http://codestips.com/php-multithreading-using-curl/

0 个答案:

没有答案