【问题标题】:Rabbitmq Acking in multiple consumersRabbitmq Acking 在多个消费者中
【发布时间】:2015-07-05 11:21:54
【问题描述】:

我有一个队列,多个消费者以循环方式工作。

Delivery_tag 用于在消费者完成处理后确认消息。但是多个消费者设置了相同的delivery_tag,尽管他们处理的消息不同。

因此,当确认完成时,我得到precondition failed

谁能告诉我我做错了什么?

这是消费者代码。我从这个链接得到它:

http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/

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()

【问题讨论】:

  • 您可以为消费者发布您的代码吗?
  • 仅供参考,您得到的消费者代码是 Python 而不是 Groovy。
  • 给定的消费者代码中没有 ack。

标签: rabbitmq rabbitmq-exchange rabbitmqctl grails-plugin-rabbitmq librabbitmq


【解决方案1】:

这是消费者代码。我从这个链接得到它。

http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/

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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多