使用pm2时,schedule模块下的任务会每个进程执行一次
发布于 8 年前 作者 Mainintowhile 5202 次浏览 来自 问答

使用pm2时,schedule模块下的任务会每个进程执行一次,怎么破,如下逻辑 每小时会request访问其他的网站一次 var rule = new schedule.RecurrenceRule(); rule.minute = 12//每小时执行 schedule.scheduleJob(rule, request(url…)); … router.get(’…’) … 使用pm2效果是每个进程都会执行一次

7 回复

为什么不是定时任务跑脚本?

同意楼上 setTimeout/setInterval 不是更简单吗?

@klesh 怎样保证准时以及每次重启时当前时间点的执行

@TimothyJin 涉及数据库操作和其他业务逻辑,

定时任务是个看似简单,实则复杂的问题。 特别是间隔较短的情况下,需要考虑的第一要素就是,如果这个任务时间太长,当这次定时开始执行的时候,上一个定时任务是否已经完成?如果可以确定不会有这种情况发生, 可以用 setInterval ,误差不会太大的。

@klesh 准备还是用pm2+schedule,不过分离出来单独用一个进程跑,想了想setInterval细节问题不少

@Mainintowhile 我的意思是crontab跑你自己的node脚本,而不是用setInterval,这样不就可以避免多进程问题?

回到顶部