如果连接 idle/Not 耗时很长,请停止 channel.basic_consume
Stop channel.basic_consume if the connection is idle/Not consuming from long time
我有一个用例,我想在其中获取 pika 消费者 (pika.BlockingConnection) 的最后空闲时间(最后一条消息处理时间)。
用例:
如果上次处理时间大于阈值时间(例如:1 小时)。我希望消费者退出或有一个回调方法来决定我需要做什么?就像向用户发送通知一样。
有什么办法吗?
您可以在每个消息接收的末尾添加此回调,保留对它的引用,并在每个消息接收的开头删除它。
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)
我有一个用例,我想在其中获取 pika 消费者 (pika.BlockingConnection) 的最后空闲时间(最后一条消息处理时间)。
用例:
如果上次处理时间大于阈值时间(例如:1 小时)。我希望消费者退出或有一个回调方法来决定我需要做什么?就像向用户发送通知一样。
有什么办法吗?
您可以在每个消息接收的末尾添加此回调,保留对它的引用,并在每个消息接收的开头删除它。
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)