为什么不能使用redis的key过期时间监听来操作定时任务

提问者:帅平 问题分类:微服务

在日常工作中,我们需要做一个定时的任务,例如用户下单后,30分钟内完成支付,看网上有介绍说使用redis的key过期时间来监听,当key过期了被监听到则修改下订单的状态。但是这种方式很多人说不行,为什么?

1 个回答
Rae
Rae 管理员

redis里面key的过期主要是通过定时任务离线扫描,如果key过期则删除。但是这个key扫描每次不是扫描所有的key,那么就会存在其他的key已经过期了,但是没有被扫描到。那么这些过期的key就会在用户访问的时候进行判断删除。

因此结合上面的情况,redis的key不是到那个点一定会被删除的,因此如果依靠redis的key过期时间去做定时任务监听,这样会造成100的错误问题。因此真实环境中不能使用redis的key过期来做定时任务的监听。

发布于:2个月前 (10-12)
我来回答