次のことを行う cron ジョブを構築しています。
1. DB からレコードを取得します
。 2. レコードごとに、API への curl リクエストを起動します。(リクエストによっては迅速なものもあれば、大きな画像や動画をアップロードするものもあります)。
3. リクエストが成功しない場合は、わずかに異なるパラメーター (引き続きレコードに基づく) を使用して新しいリクエストを作成し、再度送信します。これは数回発生する可能性があります。
4. 要求が成功したら、DB の選択/挿入を実行します (この要求を送信する原因となった元のレコードに基づいて)。
リクエストの送信は、数分かかるもの (大規模なアップロード) と非常に速いものがあるため、並行して行う必要があります。
これを行うには何が最も適切でしょうか? DB からレコードを取得し、API の呼び出しと応答の解析を処理するための各レコードのプロセスを作成するマスター スクリプトを使用しますか? または、curl_multi を使用して、同じスクリプトから同時に複数の要求を送信し、返されるたびにそれぞれを解析しますか?
複数のプロセスを使用する場合、これを行うための最良の方法は何ですか? PCNTRL、popen など?
curl_multi を使用している場合、どの DB レコードがどの戻り要求に対応するかをどのように知ることができますか?
編集:カールマルチを使用している場合、おそらくこのテクニックを使用します: http ://www.onlineaspect.com/2009/01/26/how-to-use-curl_multi-without-blocking/
応答の処理を開始する前に、すべての要求を完了する必要があります。
ありがとう!