【发布时间】:2019-06-25 05:45:08
【问题描述】:
我使用这个简单的代码使用pika:
conn = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = conn.channel()
def on_message(ch, method, properties, message):
print("Received message: %r" % message)
channel.basic_ack(delivery_tag=method.delivery_tag)
channel.queue_declare(queue='my_queue', durable=True)
channel.basic_qos(prefetch_count=1)
channel.basic_consume(on_message, queue='my_queue')
channel.start_consuming()
问题:
一旦我收到一条消息,并且我的 on_message 回调正在运行,rabbitmq 如何确保在我调用 basic_ack 之前不向其他工作人员发送相同的消息?因为在我的测试中,如果我不调用basic_ack,如果我多次运行代码,该消息将再次发送。 rabbitmq 从发送消息到收到ack 是否有超时?
【问题讨论】:
标签: python rabbitmq message-queue pika python-pika