繁体   English   中英

需要添加/更新持久化Rabbitmq队列的参数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM