首页 > 数据库 >利用redis实现倒计时任务

利用redis实现倒计时任务

时间:2022-09-28 15:11:53浏览次数:55  
标签:__ keyevent redis 倒计时 任务 msg conn pubsub

示例如下:

import redis
import time

def event_handler(msg):
'''
监听到任何key过期后,得到的消息如下
msg ={'type': 'pmessage', #返回值类型
'pattern': '__keyevent@2__:expired', #来源
'channel': '__keyevent@2__:expired', # 实际的Channel
'data': 'mykey' # key名称
}
可以根据您要监控的key进行业务判断或触发其他事件
if msg['data']=='mykey':
do....
elif msg['data']=='yourkey':
do ----
'''
print(msg)


redis_conn = redis.Redis(host='host', port='6379', db=2, password='test.123.com', decode_responses=True)
#设置过期时间2秒
redis_conn.set('mykey', 'asjdhkjashdkjahdskjahsd', ex=2)
# 订阅消息
pubsub =redis_conn.pubsub()
# 订阅key过期事件
# __keyevent@2__:expired : __keyevent@{db}__:事件
pubsub.psubscribe(**{'__keyevent@2__:expired': event_handler})
while True:
message = pubsub.get_message()
if message:
# redis_conn.set('mykey', 'asjdhkjashdkjahdskjahsd', ex=10)
print('wqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwq')
else:
time.sleep(0.01)

keyevent

标签:__,keyevent,redis,倒计时,任务,msg,conn,pubsub
From: https://blog.51cto.com/u_13495873/5719369

相关文章

  • Memcached vs Redis, 挑选哪一个?
    MemcachedvsRedis,挑选哪一个?标签:MencachedRedisMemchached还是Redis?该用哪一个?当我们讨论改进性能的时候,这是每次技术讨论中最常见的一个问题。每当性能需要改善时......
  • 使用Spring boot基于Redis快速搭建分布式Session缓存方案
    使用Springboot基于Redis快速搭建分布式Session缓存方案大型web应用中,session的管理非常重要,这是单机存储满足不了的.通常有以下几种方法:将session持久化到数据库中.但......
  • docker 安装 redis
    1、启动镜像dockerrun--restart=always--log-optmax-size=100m--log-optmax-file=2-p6379:6379--namemyredis-v/opt/myredis/redis.conf:/etc/redis/redis.co......
  • 直播软件app开发,JavaScript应用定时器实现倒计时
    直播软件app开发,JavaScript应用定时器实现倒计时 <!DOCTYPEhtml><html><head><metacharset="UTF-8"><title></title></head><body>手机号码:<inputtype="text"/><bu......
  • EVENT LOOP 宏任务、微任务
    JS单线程同步程序执行完成之后,执行异步程序js是单线程的,一个任务执行完成之后才执行另一个任务process.nextTick(()=>{}),再node环境下才能运行,这个是在异步前执行的......
  • 玩转SpringBoot之定时任务
    玩转SpringBoot之定时任务使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式:一、基于注解(@Scheduled)二、基于接口(SchedulingConfigurer)前者相信大家......
  • Redis笔记
    Redis建议参考目录使用!!!Redis(RemoteDictionaryServer),即远程字典服务redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并在此基础上实现了主从......
  • 【Redis】切片集群
    如何保存更多的数据为了保存更多的数据,通常使用大内存云主机和切片集群两种方法。实际上,这两种方法分别对应着redis应对数据量增多的两种方法:纵向扩展和横向扩展。纵向......
  • DophineSheduler上下游任务之间动态传参案例及易错点总结
    作者简介淡丹数仓开发工程师5年数仓开发经验,目前主要负责百得利MOBY新车业务二手车业务及售后服务业务系统数仓建设业务需求在ETL任务之间调度时,我们有的时候会需要将上游的......
  • REDIS面试题(7)
    20 Redis的大key问题  21如何解决Redis使用key命名阻塞的问题? 如果想要获取整个实例的所有key,建议使用SCAN命令代替。客户端通过执行SCAN$cursorCOUNT$count......