Redis如何实现延时队列?

延迟任务

延时任务,顾名思义,就是延迟一段时间后才执行的任务。
我们先看看以下业务场景:

  • 当订单一直处于未支付状态时,如何及时的关闭订单,并退还库存?
  • 如何定期检查处于退款状态的订单是否已经退款成功?
  • 新创建店铺,N天内没有上传商品,系统如何知道该信息,并发送激活短信?等等

实现方法

 利用zset保存队列信息,按照时间戳存放,再启动一个任务,一直扫这个zset,判断当前时间和队列中的时间大小信息,执行后,删除数据;
zset常用命令
添加元素:ZADD key score member [[score member] [score member] ...]
按顺序查询元素:ZRANGE key start stop [WITHSCORES]
查询元素score:ZSCORE key member
移除元素:ZREM key member [member ...]

猜你喜欢

转载自blog.csdn.net/qq1332479771/article/details/88585482