2016-04-18 17 views
2

Rebusでは、メッセージが順次処理されるようにメッセージの処理を制御する方法はありますか?つまり、最初の1つずつ処理し、第2被処理除去などメッセージの順次処理

答えて

1

はい - およびno :)

まず第一に、私はちょうどそれはあなたがあなたのシステムを設計するためにあなたの力ですべてを行うことが最良であることを言いたいです並べ替えられたメッセージには寛容になります。途中で1つ以上のメッセージがエラーキューに入れられていても、システムが一貫性のある状態で終了することができれば、将来的にはさらに幸せになれます。

「再順序付けされたメッセージに耐えます」と言うとき、必ずしも「完全にランダムな順序ですべてのメッセージ」を意味するわけではありません...「少し並べ替えられました」や「いくつかの注文しましたが、再注文されたものの多くを許容することができます "。常識の範囲内。

あなたの要件は非常に厳しいですね。それを達成する唯一の方法は、メッセージを処理する1つのスレッド(並列処理を1つ)、廃棄(またはキューの後ろに移動メッセージは重要である)メッセージは、次のメッセージではありませんでした。

キューの背面に移動するメッセージがあまりにも粗すぎる場合(メッセージが多数ある場合や遅れている場合は遅くなることがあります)、サガを使用してメッセージをキューに入れてその時点で、必要なことをすることができます。

私はそれが意味をなさないことを望みます。何かが明確でない場合は教えてください。

+0

@ mooid8000:複数のマシンでハンドラーを実行している場合、これは機能しません。正しい? – Chandu

+0

正しい - それが動作するためには、ある種の分散型直列化機構が必要です...しかし、一般的には複数のマシン上で並行して並行して分散して処理できる作業のためにキューを使用することが最善です。各メッセージを処理するために必要な作業はかなり独立しており、同じリソース – mookid8000

関連する問題