[英]Need to add/update the arguments of an durable rabbitmq queue
我想为现有队列配置死信。 为此,我尝试将参数(x-dead-letter-queue)添加到我的Durable Rabbitmq队列中。 所以当我更新我的bean定义
从
@Bean
Queue queue() {
return QueueBuilder.durable("my-queue")
.build();
至
@Bean
Queue queue() {
return QueueBuilder.durable("my-queue")
.withArgument("x-dead-letter-exchange", "dead-letter.exchange")
.build();
}
我有一个例外
Channel shutdown: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg 'x-dead-letter-exchange' for queue 'my-queue' in vhost '/': received 'dead-letter.exchange' but current is None, class-id=50, method-id=10)
我读到我可以应用策略来更新持久队列。 所以,我尝试了以下命令
rabbitmqctl set_policy dlq_policy_name "my-queue" '{"dead-letter-exchange": "dead-letter.exchange"}'
但是仍然没有在队列my-queue上设置参数。
你能帮我实现这个目标吗?
PS。 我宁愿避免删除和重新创建队列,但是如果这是最后一个选择,那么只有我会考虑。
回答我自己的帖子...
因此,设置策略后,您不会在队列的参数中看到策略设置。
检查
rabbitmqctl list_queues name arguments policy
会为您提供参数以及队列策略。
然后,我们将必须删除Java代码中的参数设置,并根据策略设置队列将起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.