【问题标题】:Deferring publish-messages in Rebus在 Rebus 中延迟发布消息
【发布时间】:2015-04-29 06:32:43
【问题描述】:

我想推迟要发布的消息,但 Rebus 将消息返回到发送队列。我期待它将它们发送给实际的收件人。

我在这里做错了什么还是我理解延迟功能错误?

【问题讨论】:

  • 欢迎来到 Stackoverflow。分享你尝试过的代码sn-ps。

标签: rebus


【解决方案1】:

bus.Defer 就是这样工作的 - 它将消息发送到消息的 Headers.ReturnAddress 标头中指定的返回地址,默认情况下设置为发送者的输入队列。

您可以通过显式设置消息的返回地址,让超时管理器将消息发送到其他地方,如下所示:

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

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

但在您的情况下,由于您希望发布消息,我建议您只需添加一个本地处理程序,该处理程序在超时管理器返回时发布消息。

【讨论】:

    猜你喜欢
    • 2014-05-14
    • 1970-01-01
    • 2015-01-12
    • 2017-06-07
    • 1970-01-01
    • 2021-02-01
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    相关资源
    最近更新 更多