質問

工程Aは、オブジェクトA1、A2、A3等のための値を計算し、ミドルウェアキュー(RabbitMQの)に結果を送信しています。消費者は、キューを読み、さらに、これらの結果を処理します。 定期的に消費者が他のいくつかの計算を行うことができるように、Aは、これらの値のスナップショットを送信する必要があります処理します。これらのオブジェクトの値は独立して変更される可能性があります。キューは、このA1、A1、A2、A1、A2、A2、A3 ...消費者は、キュー内の各項目を処理するようになります。スナップショットは、一度にすべてのオブジェクトにこのメッセージを処理するすべてのオブジェクトと消費者を含める必要があります。

要件は、このようなキュー持っているので、:A1、A1、A3、A2、A2、[スナップショット、A1、A2、A3]を、A3、A1 ...問題は、これらの項目は、さまざまな種類のものであることです:スナップショットA1、A2およびその他のようなオブジェクトのための1つのタイプ。消費者は、スナップショットを処理する前に、オブジェクトを処理するかもしれません。

:。彼らはdiferentキューで処理されなければならないが、その場合には競合状態があることをこれは意味

この(非常に一般的)な問題を解決するための任意のパターンはありますか?私たちは、メッセージキューイングのためのRabbitMQを使用しています。

役に立ちましたか?

解決

を使用する消費者ごとに単一のキューと配信されるメッセージのタイプを示すために、コンテンツタイプのプレフィックス。でAMQPメッセージで「タイプ」属性があるかもしれないと思うが、それはこの問題に該当するかどうかはわからないので、私は、それを使用したことがありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top