如何为 pika 库上的方法 start_consuming() 添加超时

Tux*_*man 3 python rabbitmq pika

我有一个BlockingConnection,并且我遵循pika 文档的示例。但在所有这些中,开始使用消息的代码示例是:

connection = pika.BlockingConnection()
channel = connection.channel()
channel.basic_consume('test', on_message)
try:
    channel.start_consuming()
except KeyboardInterrupt:
    channel.stop_consuming()
connection.close()
Run Code Online (Sandbox Code Playgroud)

(有或多或少的细节)。

我必须编写许多脚本,并且我想一个接一个地运行(用于测试/研究目的)。但上面的代码要求我在每个代码中添加 ^C 。

我尝试添加文档中解释的一些超时,但我没有运气。例如,如果我找到一个设置参数,如果客户端在过去 X 秒内没有使用任何消息,则脚本完成。这在 pika lib 中可行吗?或者我必须改变方法?

Luk*_*ken 5

start_consuming如果您不希望代码被阻止,请不要使用。要么使用SelectConnection要么使用此方法consume。您可以为传递给 的参数添加超时consume