4

キューからメッセージを取得して処理していますが、ある時点でいくつかのメッセージについて、処理を試みる前に数秒待たなければならないことを理解しています。

オプションは次のとおりです。

  • sleep() を呼び出して待機することはできますが、何百ものメッセージが表示される場合があり、多くのワーカーをランチすることはできません。

  • メッセージを再キューイングすることはできますが、それは良い考えですか? 同じ結果で何度も処理します。(処理にはDBキューリングなどを含む)

  • メッセージを処理する時間かどうかを知るために、タイムスタンプを含む新しいメッセージを自分自身に送信できます。そのため、到着時にタイムスタンプを確認し、問題がなければ通常の処理に進みます。

明らかに、3 番目の方法の方が適切ですが、このメッセージを同じ交換/キューに送信する必要がありますか、それとも別の交換「processing_pass2」を作成することをお勧めしますか? または、そのようなタスクを実行するための組み込み機能 @rabbitMQ があるのでしょうか? 指定された秒数後に再度表示されるようにメッセージをキューに入れ直しますか?

4

0 に答える 0