我有一个BlockingConnection
,并且遵循the examples的pika文档。但是在所有这些中,开始使用消息的代码示例如下:
connection = pika.BlockingConnection()
channel = connection.channel()
channel.basic_consume('test', on_message)
try:
channel.start_consuming()
except KeyboardInterrupt:
channel.stop_consuming()
connection.close()
(具有或多或少的详细信息)。
我必须编写许多脚本,并且我想一个接一个地运行(出于测试/研究目的)。但是上面的代码要求我在每个代码中都添加^ C。
我尝试添加一些超时explained in the documentation,但是我还没有走运。例如,如果客户在最近X秒钟内不使用任何消息,而我找到了set参数,则脚本完成。在pika lib中可以吗?还是我必须改变方法?
答案 0 :(得分:1)
如果您不想阻止代码,请不要使用start_consuming
。使用SelectConnection
的{{1}}或MDN。您可以为传递到consume
的参数添加超时。
注意: RabbitMQ团队监视consume
this method,并且有时仅在StackOverflow上回答问题。