いくつかのワークフローのユースケースについて、RabbitMQ をチェックしています。
これまでのところ、Ruby を使用して、ニーズに合ったテスト環境を作成し、問題なく動作しているようです。
うさぎの初心者の場合、私が持っている質問は、ベスト/グッドプラクティスについてです.
3 つの QUEUES を定義しましょう (例として)
- Q_決定
- Q_RIGHT
- Q_LEFT
すべてのプロデューサーは Q_DECISION 内にメッセージを投稿します
そのキューで実行されているワーカーがあり、本文の一部のコンテンツをチェックします。決定の場合、メッセージ/タスクを Q_LEFT または Q_RIGHT に移動する必要があります。
メッセージ固有の情報 properties.headers を格納しているため、本文と同様に繰り返します。
これまでのところ問題ありません。質問は再公開に関するものです。
q_decision.subscribe(:block => true) do |delivery_info, properties, body|
# ... more code here
if (decision_left)
q_left.publish(body, :headers => properties.headers, :persistent => true)
end
end
上記のように再発行すると、以前のメッセージから何かが失われますか?
と には多くの属性が定義/保存されdelivery_info
てproperties
います。
それらを再投稿する必要がありますか、それとも自己作成のヘッダーと本文のみですか?