1
我正在使用RabbitMQ和Python從RabbitMQ服務器中檢索郵件。如果超過5分鐘,我希望程序執行某些操作,並且沒有收到來自Rabbitmq的消息。確定功能中的已用時間?
我在RabbitMQ網站上找到了示例python代碼,它運行並打印收到的每條消息。我試圖弄清楚如何添加計時器,以便在收到消息後超過5分鐘時間的情況下執行XYZ。
有關如何完成此任何想法?下面是從RabbitMQ的代碼:
#!/usr/bin/env python
import pika
import time
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
def callback(ch, method, properties, body):
print(" [x] Received %r" % body) # Print out received message
channel.basic_consume(callback,
queue='SlackWebhook',
no_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
我不知道RabbitMQ,但查看你的代碼「BlockingConnection」我的推薦是看看NonBlockingConnection,因爲如果他們把阻塞在函數名稱中,它們必須有一個非阻塞的。然後檢查你打給消費者的時間。 – Mquinteiro
使用上下文管理器執行此操作的一種簡單方法顯示在文章[** _使用Python定時您的代碼「中使用」Statement _ **「(http://preshing.com/20110924/timing-your-code-using-蟒蛇,用語句/)。只需將'channel.start_consuming()'行放入'Timer():'中即可。 – martineau