如何在RabbitMQ中新增队列?现有hello队列需添加hello1队列
修正RabbitMQ代码以新增hello1队列
嘿,我来帮你调整这段代码,实现新增hello1队列的需求~你当前的代码里queue_declare的写法有语法错误,RabbitMQ要求每个队列单独通过queue_declare方法声明,不能在一个调用里同时指定多个队列名。
下面是具体的修改方案:
方案1:同时创建hello和hello1队列,继续往hello发消息
如果你只是需要新增hello1队列,但消息还是发送到原来的hello队列,修改后的代码如下:
import pika connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() # 声明原有的hello队列(幂等操作,重复调用不会报错) channel.queue_declare(queue='hello') # 新增声明hello1队列 channel.queue_declare(queue='hello1') # 消息依然发送到hello队列 channel.basic_publish(exchange='', routing_key='hello', body='hello') connection.close()
方案2:创建hello1队列并往该队列发送消息
如果需要把消息发送到新的hello1队列,只需要调整basic_publish的routing_key参数:
import pika connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() # 保留原hello队列(可选,如果不需要可以删除这行) channel.queue_declare(queue='hello') # 新增hello1队列 channel.queue_declare(queue='hello1') # 消息发送到hello1队列 channel.basic_publish(exchange='', routing_key='hello1', body='hello') connection.close()
方案3:同时往两个队列发送消息
要是需要同时给hello和hello1都发送消息,只需要调用两次basic_publish:
import pika connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() channel.queue_declare(queue='hello') channel.queue_declare(queue='hello1') # 发送到hello队列 channel.basic_publish(exchange='', routing_key='hello', body='hello') # 发送到hello1队列 channel.basic_publish(exchange='', routing_key='hello1', body='hello') connection.close()
补充说明:queue_declare是幂等操作,也就是说即使多次调用这个方法声明同一个队列,也不会产生重复创建的问题,所以不用担心重复执行代码会出错~
内容的提问来源于stack exchange,提问作者newUser
相关产品推荐
相关产品推荐

