1

さまざまな PHP ベースの Web アプリケーションで使用する、RabbitMQ ベースのメッセージ処理システムを設計しています。PHP デーモンは、キューから項目を取得して処理を実行するために使用されます。

たとえば、何百人もの受信者に電子メールを送信すると、メッセージ キューは Web アプリケーションに対して非同期で送信します。

私の質問は、このタイプのシステムでは、何が最善の方法であるかということです

  1. 送信された電子メールの進行状況を検出する (2/100)
  2. プロセス全体がいつ完了するかを把握します。
  3. 2 がわかったら、プロセス全体が完了したときに Web アプリケーションにメッセージを送り返しますか?

1 については、デーモンが完了キューにメッセージを送信すると思いますが、項目 2 と 3 のコードはどこに配置されるのでしょうか?

それが理にかなっていることを願っています。

K

4

1 に答える 1

0

イベント処理が必要なようです:) ... PHP(Javaとは異なり)はイベント処理を提供しないため、私が見ることができる唯一のオプションは、Webサーバーがデーモンプロセスをポーリングすることです。別の方法として、デーモンは完了ステータスを静的ファイルに書き込んで、Web サーバーがポーリングできるようにすることもできます (パフォーマンスが少し向上します)。ポーラーは、ファイルまたは Web サーバーに ajax 要求を出し続ける JavaScript の無限ループ (成功タイプでブレーク) である可能性があります。

また、完了時にデーモンがデータをサーバーにプッシュできるコメット (サーバー プッシュ) メソッドも確認できます。

これが役立つ場合、または他の詳細が必要な場合はお知らせください。

よろしくピナキ

于 2010-02-25T05:42:10.320 に答える