有没有办法明确告诉代理向队列分配的死信队列发送消息?
我知道我们可以配置一个队列以在一定次数的重新传递尝试后自动向 DLQ 发送消息。这对于数据库问题、网络问题等临时错误非常有意义。但是,在业务规则错误的情况下,让该消息在 X 分钟内尝试重新传递 X 次是没有意义的。当我们知道这是违反业务规则/格式错误的消息等时发送到死信队列。
我希望有一种方法,当我们发现违反业务规则时,我们可以立即将其发送到该队列死信队列。我知道我可以显式地编写代码将其发送到死信队列,但我们将有许多(数十个)可配置队列,并且它们相关的死信队列将由我们的中间件团队配置。我不想明确编码死信队列队列名称,甚至在我自己的属性中配置它们。我希望有一种简单的方法可以告诉代理立即将消息发送到死信队列而不尝试重新传递。
看起来应该是这样的message.deadLetter()
。我觉得我一定错过了一些简单的东西,但我在消费者、会话或消息上看不到任何类似的机制。