0

Rebus をバッチ システムのバックボーンとして実行しています。複数のワーカーで処理できる複数のキュー (つまり、メッセージ タイプ) があります。各ワーカーは、1 つのメッセージ タイプのみを処理できます。たとえば、message_1 の場合、このメッセージを処理できる 2 つのワーカー (worker1 と worker2) があります。現在、ハンドルが空いている最初のワーカーがメッセージを処理します。これはデフォルトの動作であり、正常に機能しています。

私の質問は、メッセージにワーカー ID (たとえばワーカー 2) が含まれている場合、そのワーカーだけがそのメッセージを処理できるように、何らかの方法で Rebus をセットアップできるかどうかです。メッセージにワーカー ID がない場合は、デフォルトの動作 (上記を参照) が優先されます。

4

1 に答える 1

1

ここで説明していることを達成する方法はありません(少なくとも現時点では)。

特定のメッセージ タイプ (または特定のメッセージ インスタンス) に特別な要件がある場合は、それらの種類のメッセージを処理できる 1 つ以上の特別なエンドポイントにそれらのメッセージを転送することをお勧めします。

転送はヘッダーに基づいて実行できるため、メッセージの内容を必ずしも逆シリアル化できなくても、一般的な方法で動作するように設定できます。

解決しようとしている問題について詳しく教えていただければ、よりエレガントな解決策 (または少なくとも Rebus でよりエレガントに解決できる解決策) を見つけられるかもしれません。

于 2014-10-06T11:39:32.757 に答える