我有一个用例,我想要获得pika消费者的最后空闲时间(最后消息处理时间)(pika.BlockingConnection)。
的 USECASE:
如果上次处理的时间大于阈值时间(例如:1小时)。我希望消费者退出或有一个回调方法来决定我需要做什么?就像向用户发送通知一样。
有没有办法做到这一点?
答案 0 :(得分:0)
pika支持timeout callback.
您可以在每封邮件收据的末尾添加此回调,保留对其的引用,并在每封邮件收据的开头删除它。
def close_connec():
# close here
timer_id = None
def on_message(chan, method, props, body):
if timer_id is not None:
chan.connection.remove_timeout(timer_id)
# process message
timer_id = chan.connection.add_timeout(3600, close_connec)