0

いくつかのワークフローのユースケースについて、RabbitMQ をチェックしています。

これまでのところ、Ruby を使用して、ニーズに合ったテスト環境を作成し、問題なく動作しているようです。

うさぎの初心者の場合、私が持っている質問は、ベスト/グッドプラクティスについてです.

3 つの QUEUES を定義しましょう (例として)

  1. Q_決定
  2. Q_RIGHT
  3. 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_infopropertiesいます。

それらを再投稿する必要がありますか、それとも自己作成のヘッダーと本文のみですか?

4

1 に答える 1

1

メッセージ本文とメッセージ ヘッダーは 2 つの異なるものです。バニーまたは任意のクライアント ライブラリが、渡された本文で新しいメッセージを作成すると想定します。これは、次のキューにも渡したいヘッダーを再設定する必要があることを意味します。

于 2014-06-17T18:40:22.923 に答える