多消费者中的Rabbitmq应答
我有一个队列,其中多个消费者以循环方式工作 Delivery_标记用于在消费者完成处理后确认消息。但是多个消费者设置了相同的多消费者中的Rabbitmq应答,rabbitmq,rabbitmq-exchange,rabbitmqctl,grails-plugin-rabbitmq,librabbitmq,Rabbitmq,Rabbitmq Exchange,Rabbitmqctl,Grails Plugin Rabbitmq,Librabbitmq,我有一个队列,其中多个消费者以循环方式工作 Delivery_标记用于在消费者完成处理后确认消息。但是多个消费者设置了相同的交付标签,尽管他们处理的消息不同 因此,当确认完成时,我得到的是前置条件失败 谁能告诉我哪里做错了 这是消费者代码。我从这个链接得到: 这是消费代码。我从这个链接上得到的 你能为消费者发布你的代码吗?仅供参考,你得到的消费者代码是Python而不是Groovy。给定的消费者代码中没有ack。 from amqplib import client_0_8 as amqp
交付标签
,尽管他们处理的消息不同
因此,当确认完成时,我得到的是前置条件失败
谁能告诉我哪里做错了
这是消费者代码。我从这个链接得到:
这是消费代码。我从这个链接上得到的
你能为消费者发布你的代码吗?仅供参考,你得到的消费者代码是Python而不是Groovy。给定的消费者代码中没有ack。
from amqplib import client_0_8 as amqp
conn = amqp.Connection(host="localhost:5672", userid="guest", password="guest", virtual_host="/", insist=False)
chan = conn.channel()
chan.queue_declare(queue="po_box", durable=True, exclusive=False, auto_delete=False)
chan.exchange_declare(exchange="sorting_room", type="direct", durable=True, auto_delete=False,)
chan.queue_bind(queue="po_box", exchange="sorting_room", routing_key="jason")
def recv_callback(msg):
print 'Received: ' + msg.body + ' from channel #' + str(msg.channel.channel_id)
chan.basic_consume(queue='po_box', no_ack=True, callback=recv_callback, consumer_tag="testtag")
while True:
chan.wait()
chan.basic_cancel("testtag")
chan.close()
conn.close()
from amqplib import client_0_8 as amqp
conn = amqp.Connection(host="localhost:5672", userid="guest", password="guest", virtual_host="/", insist=False)
chan = conn.channel()
chan.queue_declare(queue="po_box", durable=True, exclusive=False, auto_delete=False)
chan.exchange_declare(exchange="sorting_room", type="direct", durable=True, auto_delete=False,)
chan.queue_bind(queue="po_box", exchange="sorting_room", routing_key="jason")
def recv_callback(msg):
print 'Received: ' + msg.body + ' from channel #' + str(msg.channel.channel_id)
chan.basic_consume(queue='po_box', no_ack=True, callback=recv_callback, consumer_tag="testtag")
while True:
chan.wait()
chan.basic_cancel("testtag")
chan.close()
conn.close()