我有一个cron作业设置,最小值为60秒,我希望程序能够以第二个间隔运行,即无论我将其设置为60秒以后。
例如,我希望cron作业每65秒运行一次,或者每63秒运行一次,或者每160秒运行一次等。
这可能吗?或者cron作业是否设置为每隔60秒运行一次?
如果是的话,这个cron的工作是什么样的?
我成功地让每一个' x'分: 到目前为止,我已经设法使用用户插入的数据库值来每隔几分钟运行一次cron作业。看起来像这样:
cron.schedule('*/' + test + ' * * * *', function () {
console.log('running a task every minute');
});
模式如下:
var CronSchema = new mongoose.Schema({
minutes: { type: Number, min: 1 }
})
我怎样才能在每个' x'秒吗 理想情况下,我只允许用户以秒为单位输入值,因此如果他们希望每两分钟运行一次,则必须输入120秒。
答案 0 :(得分:12)
如果你正在使用Node的中间件,你也可以添加秒数
cron.schedule('*/' + test + '0,30 * * * * *', function () {
console.log('running a task every minute');
});
将每30秒运行一次,即在xx:00:000
和xx:30:000
请注意,javascript版本有六个值,而不是五个像本机Linux Cron,这意味着第六个是秒,这将是第一个
* * * * * *
┬ ┬ ┬ ┬ ┬ ┬
│ │ │ │ │ |
│ │ │ │ │ └ day of week (0 - 7) (0 or 7 is Sun)
│ │ │ │ └───── month (1 - 12)
│ │ │ └────────── day of month (1 - 31)
│ │ └─────────────── hour (0 - 23)
│ └──────────────────── minute (0 - 59)
└───────────────────────── second (0 - 59, OPTIONAL)
中找到有关允许值的完整文档
答案 1 :(得分:0)
cron.schedule('*/' + test + '0,x * * * * *', function () {
console.log('running a task every x seconds');
});
这将每隔x秒运行一次。