【发布时间】:2015-04-29 06:32:43
【问题描述】:
我想推迟要发布的消息,但 Rebus 将消息返回到发送队列。我期待它将它们发送给实际的收件人。
我在这里做错了什么还是我理解延迟功能错误?
【问题讨论】:
-
欢迎来到 Stackoverflow。分享你尝试过的代码sn-ps。
标签: rebus
我想推迟要发布的消息,但 Rebus 将消息返回到发送队列。我期待它将它们发送给实际的收件人。
我在这里做错了什么还是我理解延迟功能错误?
【问题讨论】:
标签: rebus
bus.Defer 就是这样工作的 - 它将消息发送到消息的 Headers.ReturnAddress 标头中指定的返回地址,默认情况下设置为发送者的输入队列。
您可以通过显式设置消息的返回地址,让超时管理器将消息发送到其他地方,如下所示:
// specify which address to reply to
bus.AttachHeader(msg, Headers.ReturnAddress, "somewhereelse");
// defer the message
bus.Defer(toTheFuture, msg);
但在您的情况下,由于您希望发布消息,我建议您只需添加一个本地处理程序,该处理程序在超时管理器返回时发布消息。
【讨论】: