我正在尝试完全禁用某些特定异常的重试。
我知道在我的代码中 - 当我试图处理消息X并且处理程序抛出“ZZZ”类型异常时,我确信任何数量的重试都没有办法帮助;
我想要做的是立即将该消息直接发送到错误队列而不进行任何重试。
我该怎么做?
答案 0 :(得分:1)
我知道您已经接受了答案,但由于您试图绕过内置于特定场景的管道,您可以在try / catch中处理该消息,并将消息直接发送给错误排队或让FLR / SLR处理它。
请注意,这是不理想情况。在大多数情况下,主动不鼓励处理消息的错误处理,而是允许基础设施管理它。
以下是可能的实施方式:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
编辑我推荐Marcin的评论包含在这个答案中,所以不容错过:
请记住,不使用此设置即可使用此方法 适当的邮件标题您将失去返回这些标题的能力 消息到源队列失败。请看看这个doco 有关详细信息:http://docs.particular.net/nservicebus/messaging/headers#retries-handling-headers。 - 马辛 霍普
答案 1 :(得分:0)
您无法进行第一级重试,仅适用于second level retries。我个人不会担心它(我有类似的东西,我知道某些例外它不会被修复)。让他们进入FLR通常没有任何缺点。