我使用python 3和amqpstorm包。我有这段代码(缩写)使用open rabbitmq connection:
ichannel = connection.channel(rpc_timeout = 5)
ichannel.basic.qos(10000)
ichannel.queue.bind(...)
ichannel.basic.consume(self.<process_message>, <queue>, no_ack = False)
ichannel.start_consuming(to_tuple = False)
我收到最后一封邮件并在process_message函数中调用时,批量处理这10000条邮件:
ichannel.basic.ack(0, True)
确认所有10000封邮件。功能 start_consuming 结束。有人知道为什么吗?我希望在这种多次传播之后继续接收消息......
答案 0 :(得分:0)
通过传递最后一条消息的真实传递标签来解决,而不是通常为0(它应该以相同的方式行事 - 但它并没有......)到basic.ack函数。