redis实现超时监听
coon1 = redis.Redis(host='127.0.0.1', port=6379, db=1, password=‘******')
# 监听并执行任务
def monitor(self):
"""
监听过期时间并执行task
:return:
"""
log("1号库超时监听", "-------------")
r = redis.StrictRedis(host='127.0.0.1', port=6379, db=1, password='******')
pub = r.pubsub()
pub.subscribe('__keyevent@1__:expired')
for msg in pub.listen():
info = (msg['data'])
if type(info) != int: # 如果没有数据,默认数字
info = info.decode()# 拿出数据为b
if re.match(r'^heartbeat', info):# 正则匹配
log('超时,执行任务')
# 设置超时时间
coon1.setex("heartbeat" + msg, 60, "time") # 60s后超时,task执行
目前这方面还不是很通透,欢迎大佬指教!!!