私は、バックグラウンド ジョブを処理するための php-resque やその他のジョブ処理システムに精通していますが、必要なことを実行するとは思いません。
この場合、外部システムに対して複数 (2 ~ 4) の独立したコールアウトを実行し、統合された応答をクライアントに返す必要がある着信 Web サービス要求があります。各コールアウトには 300 ~ 500 ミリ秒かかる場合があるため、各コールアウトを並行して実行して、プロセス全体で合計 500 ミリ秒 +/- を超えないようにしたいと考えています。
php-resque やその他のシステムに関する私の問題は、それらのコールアウトの発行を開始するのに 1 秒でも待つのは長すぎて待つことができないということであり、別のアプローチを検討しています。
私が考えていること:
- 個々のコールアウトが記述され、指定された一意のリクエスト ID とともにデータベースに保存されます
- 非同期phpプロセス(別名「ワーカープロセス」)としてジョブをすぐに開始します
- 各ワーカーはその結果をジョブ レコードに書き戻し、完了したことを示します。
- その間、50 ~ 100 ミリ秒ごとにジョブ テーブルをポーリングして、各ジョブのステータスを確認します。
- それぞれが完了すると、必要に応じて結果を解析し、応答を返します。
もちろん、各リクエストと全体的なプロセスにタイムアウトを実装します...
考え?私が間違っている?php-resque は複数のジョブを並行して事実上瞬時に開始できますか?