2016-09-26 6 views
1

は、我々は次のシナリオに直面していました: イベントが特定の順序でのイベントのチェーンを生成する生成: は が はアイテム2、アップデートを作成し、アイテム1、アップデート項目1、完了項目の作成1としましょうアイテム2、フィニッシュアイテム2ラビットMQイベントの同時実行性と同期

アイテム1とアイテム2のイベントが並行して送出されることに注意してください。 無関係な操作をブロックすることなく、項目ごとに項目1と項目2のイベントを順番に処理する必要があります。項目1を作成し、項目2を作成すると、CreateItem1と項目1を順次実行する必要があります。

主な質問は、各項目に専用のキューを作成せずにどのようにこのような動作を実現できるかです。 件数が不明です。 イベントを処理する複数のプロデューサと複数のコンシューマがあります。

答えて

1

答えは簡単です。これらのイベントを並列に出力しないでください。 Create Itemイベントの後にUpdate Itemイベントを処理する必要がある場合は、Create Itemイベントを処理した後にCreate ItemイベントがUpdate Itemイベントを放出する必要があります。

BTW:アイテムごとに別々のキューを持つことは、そのようなキューに1つのコンシューマが存在し、イベントが正しい順序で発行されることを保証できる場合にのみ機能します。

関連する問題