【问题标题】:What happens to Rebus failed messagesRebus 失败消息会发生什么
【发布时间】:2016-03-13 06:11:37
【问题描述】:

在旧版本的 Rebus 中,您可以控制错误队列。但是现在您在 azure servicebus 扩展器中只有一个“inputQueue”。如何控制错误队列?

Bus = Configure.With(_adapter)
            .Transport(t => t.UseAzureServiceBus(ConnectionString, inputQueue /*, errorQueue */))
            .Start();

更新:它们最终进入“错误”队列。我现在在同一个(错误)队列中有来自不同来源的消息。那么问题来了,rebus 能否过滤掉输入队列与自定义属性rbs2-source-queue 匹配的消息?

【问题讨论】:

    标签: c# rebus


    【解决方案1】:

    错误队列仍然是可配置的!

    你让我意识到这不是我在 wiki 上提到的东西,so I just went and added it :)

    配置使用哪个错误队列的解决方案非常简单 - 看看这个:

    Configure.With(...)
        .Options(b => b.SimpleRetryStrategy(errorQueueAddress: "somewhere_else"))
        .(...)
    

    正如您正确发现的那样,rbs2-source-queue 标头揭示了消息在哪个输入队列中失败的次数过多,因此它可以用于稍后过滤失败的消息。但是,没有办法只接收在该标头中具有特定值的那些消息。

    【讨论】:

    • azure servicebus 实现中是否默认使用死信队列?
    • 是的 - 但我正在考虑让 Azure 服务总线传输禁用 Rebus 的内置死信,将责任传递给 Azure 服务总线......它可能会在未来的版本中像这样工作重蹈覆辙。如果您对此决定有任何反馈或意见,请告诉我:)
    • 我喜欢将两者分开的想法 - 我们从未接触过它并且它会超时 - 另一方面 - 发生了一些不好的事情 - 。但也许我们不应该从这里开始讨论......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多