pm2(cluster)下的Nodejs,如何实现定时任务的维护

说一下场景
举例:
某个功能需要在线创建定时任务,并可以修改任务的执行时间,定时任务修改时间之后如何立即停掉旧的定时任务?

说一种解决思路参考吧,有更好的思路求分享!!

用pm2起cluster,固定线程起定时任务,定时任务当然要将执行频率等关键数据入库。

借助redis记录关键操作的信息:比如新增入库了一个任务,某个任务的执行频率修改了删除了某个任务等等。

当cluster中的任一线程接收到更新定时任务的请求时,在redis中缓存关键信息。

再起一个定时任务监控redis的关键指标,其实就是扫描定时任务是否有变化,如果有变化当将前线程干掉,pm2会复活该线程继而重新按照库中最新的任务数据初始化定时任务。

此方法不认为是最好的解决方法,如果有更好的思路请指教。

你可能感兴趣的:(pm2(cluster)下的Nodejs,如何实现定时任务的维护)