2017-09-19 64 views
1

我使用python 3和amqpstorm包。我有這樣一段代碼(縮寫)具有開放的RabbitMQ連接工作:兔子消費者停止使用channel.basic.ack

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函數內:

ichannel.basic.ack(0, True) 

確認所有10000條消息。功能start_consuming完成。有人知道爲什麼嗎?我想繼續收到這個乘法確認後的消息...

回答

0

解決方法是通過傳遞最後一條消息的實際傳遞標記,而不是一般0(它應該以相同的方式運行 - 但它不......)到basic.ack功能。

+0

謝謝 - 這已在下一個版本中解決https://github.com/eandersson/amqpstorm/issues/47 – eandersson