406, "PRECONDITION_FAILED - inequivalent arg 'durable' for queue 'hello' in vhost '/': received 'true' but current is 'false'"


环境描述:

  1. Erlong使用的是:otp_win64_21.0.1

  2. RabbitMQ使用的是:rabbitmq-server-3.7.8

  3. Windows10x64

问题描述:

  测试RabbitMQ时报:406, "PRECONDITION_FAILED - inequivalent arg 'durable' for queue 'hello' in vhost '/': received 'true' but current is 'false'"

问题代码:

  channel.queue_declare(queue='hello',durable=True) # durable 队列持久化

查看源码:

# def queue_declare(self, # channel.queueDeclare 用来创建队列,有5个参数:
# queue, # String queue, 队列名;
# passive=False,
# durable=False, # boolean durable, 该队列是否需要持久化
# exclusive=False, # boolean exclusive,该队列是否为该通道独占的(其他通道是否可以消费该队列)
# auto_delete=False, # boolean autoDelete,该队列不再使用的时候,是否让RabbitMQ服务器自动删除掉;
# arguments=None)

  passive:是屈服的意思,将passive设为True,问题解决。

正确代码:

  channel.queue_declare(queue='hello',durable=True,passive=True) # durable 队列持久化


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM