关于定时器如何缓存

mylovehx

由于业务需要定时器进行定时处理一些业务,但有时候更新代码的时候又不得不让服务重启或者平滑重启,但是这样一台定时器又被销毁掉了,很多业务定时任务又不能停下来,如此情况下么,如何让服务器重启前将当前所有定时任务进行缓存到硬盘,当服务重新启动时能继续加载重启前的任务。

阅读 482
2个回答

xiuwang

将定时任务存储在mysql,启动时间,时间间隔。然后进程重启后读取mysql,重新添加定时器。

  • 暂无评论
q13113671764

我觉得是你业务设计出问题了,这个总会有各种意外情况出现的,例如意外关机,断电,服务器卡死,数据库出问题无法连接......,如果你的代码是没法安全重启的话,你到时要怎么处理呢?我觉得这一块99%还是你设计的业务逻辑不合理,缓存定时器里面涉及到的又不是一个定时器id,这些哪有那么好存储的.还不如直接写入数据库,几点几分执行xxx,然后一秒扫一次还靠谱一些.

  • xiuwang 2021-01-26

    确实,最稳妥的方法是落地存储。