CNode

使用pm2时,schedule模块下的任务会每个进程执行一次

问答
MMainintowhile发布于11 年前最后回复11 年前7 回复6086 浏览0 收藏

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

查看回复

回复 (7)

T
TimothyJin#1·11 年前

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

K
klesh#2·11 年前

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

M
Mainintowhile#3·11 年前
引用 klesh同意楼上 setTimeout/setInterval 不是更简单吗?

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

M
Mainintowhile#4·11 年前
引用 TimothyJin为什么不是定时任务跑脚本?

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

K
klesh#5·11 年前

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

T
TimothyJin#7·11 年前

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

参与回复
登录后即可参与回复。登录