curl_multi_exec()
PHP での呼び出しがブロック呼び出しか非ブロック呼び出しかが気になりました。
質問する
1368 次
1 に答える
6
ショットの答え:ノンブロッキングcurl_multi_exec()
です
長い答え:非ブロッキングcurl_multi_exec()
ですが、curl_multi接続のいずれかでアクティビティが発生するまでブロックするの組み合わせでブロッキングを行うことができます。curl_multi_select
編集: 現在私はクローラーに取り組んでいます、これは私が使用したコードの一部の概要です。
do {
$mrc = curl_multi_exec($mh, $active);
if($to_db_queue->count()>0){
while($to_db_queue->count()>0)
//dequeue from queue and insert into database
}
else
curl_multi_select($mh); //block till state change
} while ($active > 0);
このコードは、を作成し、curl_multi_exec
キューに入れられたデータベースの作業を続行します。そうでない場合、curl_multi接続で状態が変化するまで、ループをブロックするため$to_db_queue
にキューに何も呼び出されません。curl_multi_select
これが概念の理解に役立つことを願っています。
于 2013-01-21T07:06:00.340 に答える