【问题标题】:Is there a way to tell NServiceBus to not retry a message?有没有办法告诉 NServiceBus 不要重试消息?
【发布时间】:2012-03-26 20:05:15
【问题描述】:

带有 NServiceBus 的“重试”系统很棒。它在确保像死锁这样的小事情不会把我们搞砸方面非常有效。

但是,有时我知道消息是错误的。糟糕的是,再多的重试也无济于事。

有没有办法告诉 NServiceBus:“这条消息是个坏苹果,把它移到错误队列中”?(让它跳过重试?)

【问题讨论】:

    标签: nservicebus


    【解决方案1】:

    如果您使用的是 NSB 3,您可以查看 IManageMes​​sageFailures 接口。这将允许您插入您的功能,但这是在消息失败之后。如果您想早点收到消息,请查看Message Mutators 功能。这可以让您同时进入传输层和应用层。

    【讨论】:

    • 唉,升级到 v3 对我来说有点麻烦。
    • 没问题,那我看看使用消息模块。这将允许您在处理消息之前将其处理以将其踢出。
    【解决方案2】:

    在处理程序中调用Bus.DoNotContinueDispatchingCurrentMessageToHandlers(); 不是更简单的方法吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-25
      • 2011-11-18
      相关资源
      最近更新 更多