3

パブリッシュする予定のメッセージを延期したいのですが、Rebus はメッセージを送信キューに返します。実際の受信者にそれらを送信することを期待していました。

私はここで何か間違ったことをしていますか、それとも遅延関数を間違って理解しましたか?

4

1 に答える 1

3

これが仕組みです。メッセージbus.Deferのヘッダーで指定されたリターン アドレスにメッセージを送信しますHeaders.ReturnAddress。デフォルトでは、送信者の入力キューに設定されています。

次のようにメッセージの返信アドレスを明示的に設定することで、タイムアウト マネージャにメッセージを別の場所に送信させることができます。

// specify which address to reply to
bus.AttachHeader(msg, Headers.ReturnAddress, "somewhereelse");

// defer the message
bus.Defer(toTheFuture, msg);

ただし、あなたの場合、メッセージを公開したいので、タイムアウトマネージャーから返されたときにメッセージを公開するローカルハンドラーを追加することをお勧めします。

于 2015-04-29T11:35:59.903 に答える