自学内容网 自学内容网

利用redis的key失效监听器KeyExpirationEventMessageListener作任务定时提醒功能

某需求:
要求在任务截止日期的前3天时,系统自动给用户发一条消息提醒。
用定时任务的话感觉很不舒服。间隔时间不好弄。不能精准卡到那个点。
由于系统简单,没有使用消息列队,也不能使用延时队列来做。
用Timer的话开销还挺大的,多个应用节点的话还要用分布式锁来处理重复发送问题。
后面想到了KeyExpirationEventMessageListener这玩意。正好用了redis。用来做这种周边要紧不要紧,应标的小需求最合适不过了。

做法也简单
任务生成后,将 applicationName+任务id弄个key丢到redis中,设置一个3天的过期时间。时间一到,KeyExpirationEventMessageListener监听到这个key。再用读到的id发个消息。用个乐观锁什么的去个重。简单弄下完事了。
简单示意图:
在这里插入图片描述


原文地址:https://blog.csdn.net/qq_37148232/article/details/143786466

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!