Python 无法通过pika发送超时。正在阻止连接

Python 无法通过pika发送超时。正在阻止连接,python,pika,Python,Pika,我正试图编写一个客户端程序来接收来自rabbitmq服务器的数据,我想用它来设置超时。在指定的时间之后,客户端应该停止使用队列中的消息并退出 我正在使用pika和阻塞连接。我看到了在阻塞连接中定义的add_timeoutdelay回调,但是当我尝试使用它时,我得到如下错误 [*] Waiting for logs. To exit press CTRL+C Traceback (most recent call last): File "/root/workspace/Misc/misc/

我正试图编写一个客户端程序来接收来自rabbitmq服务器的数据,我想用它来设置超时。在指定的时间之后,客户端应该停止使用队列中的消息并退出

我正在使用pika和阻塞连接。我看到了在阻塞连接中定义的add_timeoutdelay回调,但是当我尝试使用它时,我得到如下错误

 [*] Waiting for logs. To exit press CTRL+C
Traceback (most recent call last):
  File "/root/workspace/Misc/misc/pika_samples/log_recieve.py", line 39, in <module>
    channel.start_consuming()
  File "/usr/lib/python2.6/site-packages/pika/adapters/blocking_connection.py", line 293, in start_consuming
    self.transport.connection.process_data_events()
  File "/usr/lib/python2.6/site-packages/pika/adapters/blocking_connection.py", line 103, in process_data_events
    self.process_timeouts()
  File "/usr/lib/python2.6/site-packages/pika/adapters/blocking_connection.py", line 160, in process_timeouts
    self._timeouts[timeout_id]['handler']()
TypeError: callback() takes exactly 4 arguments (0 given)
如果我在指定的超时时间内收到消息,客户端应该打印消息,并且应该停止进一步消费


有人能帮我设置客户端的超时吗?

这个问题在最后期限内解决。然后在没有任何参数的情况下调用函数回调。所以你可以修改你的代码

def callback(ch=None, method=None, properties=None, body=None):
    if ch is None or method is None or properties is None or body is None:
         print "Deadline"
    else:
         print " [x] %r:%r" % (method.routing_key, body,)
def callback(ch=None, method=None, properties=None, body=None):
    if ch is None or method is None or properties is None or body is None:
         print "Deadline"
    else:
         print " [x] %r:%r" % (method.routing_key, body,)