拒绝消息时设置 x-first-death-reason 或自定义 header (SpringAMQP)

Set x-first-death-reason or custom header while rejecting message (SpringAMQP)

我有 SpringBoot AMQP 应用程序,我在其中设置了 queue 的死信。无论如何在抛出 AmqpRejectAndDontRequeueException

时为 x-first-death-reason 设置自定义消息

我现在有这个

@RabbitListener(bindings = @QueueBinding(
    value = @Queue(value = "core.queue",
                durable = "true",
                arguments = {
                    @Argument(name = "x-dead-letter-exchange", value = RabbitConfiguration.ERROR_EXCHANGE),
                    @Argument(name = "x-dead-letter-routing-key", value = RabbitConfiguration.ERROR_ROUTING_KEY)
                }
            ),
    exchange = @Exchange(value = "core.exchange"),
    key = "core.route")
)
public void errorListener(final Message message) {

    try {

        .......

    } catch (IOException e) {

        // I would like to set value for x-first-death-reason or set
        // custom header if possible.
        throw new AmqpRejectAndDontRequeueException(e.getMessage());
    }
} 

否; amqp 协议不允许消费者修改被拒绝的消息。您必须自己发布到 DLQ,而不是让 RabbitMQ 路由它。