每6小时cron模式不适用于Nodejs cron
问题描述:
我每六小时有一个cron模式0 0 0/6 ? * *
。我已经使用的NodeJS的cron执行cron作业,下面是我的代码:每6小时cron模式不适用于Nodejs cron
var CronJob = require('cron').CronJob;
new CronJob('0 0 0/6 ? * *', function() {
console.log(new Date(), 'Every 6 hours');
try {
// task to be executed
} catch (e) {
console.log(e);
}
}, function() {},
true
).start();
我我的程序的启动过程中得到这个异常:
"stack": [
"Error: Field (?) cannot be parsed",
" at Object._parseField (/home/ajit/git/test/BackEnd/node_modules/cron/lib/cron.js:344:11)",
" at Object._parse (/home/ajit/git/test/BackEnd/node_modules/cron/lib/cron.js:308:9)",
我已经在这个网站选中此模式:http://www.cronmaker.com/,它说我的cron是有效的。我搜索了互联网,我无法得到一个有效的6位数的克伦模式没有?
。
答
如Cron package documentation
中所述,模式基于this specification。您不能在模式中使用?
。
仅仅通过一个*
,同为0
前/6
更换?
:
var CronJob = require('cron').CronJob;
new CronJob('0 0 */6 * * *', function() {
console.log(new Date(), 'Every 6 hours');
try {
// task to be executed
} catch (e) {
console.log(e);
}
}, function() {},
true
);
编辑
基础上documentation再次,似乎true
标志作为第三传递参数立即开始工作,所以您不必调用start
方法。
我的英语知识说:'?符号/标记不能被解析,并且我第一次看到它(所以修正是:'0 0 */6 * * *'顺便说一句cronmaker可以用秒钟来理解crons,所以可以说它没问题(: – num8er
[node-cron运行作业每3小时]可能重复(https://stackoverflow.com/questions/41597538/node-cron-run-job-every-3-hours) –
我试过这种模式'0 0 */6 * * *'它不起作用 –