我需要有关为node.js使用cron-parser的帮助 我不太明白作业将如何运行然后记录cron作业的结果。
基于此处给出的示例https://github.com/harrisiirak/cron-parser 它迭代表达式的时间/间隔,而不是正常的cron作业,它只会在实际的cron作业完成时显示作业的结果。
问题是,我如何创建一个只运行的普通cron作业,让我们说每分钟,我怎么能创建多个作业,分别同时和异步地运行3分钟和5分钟。
这就是我应该每隔5分钟运行一次,不幸的是每5分钟不打印任何结果。
try {
var interval = parser.parseExpression('*/5 * * * *');
while (true) {
try {
var obj = interval.next();
if (obj.done)
console.log("Cron Job: run every 5 minutes.");
}
catch (e) {
break;
}
}
}
catch (err) {
console.log('cron parser error: ' + err.message);
}
修改 所以从技术上讲,我不能通过cron-parser来创建作业,而是使用cron模块来处理我的cron作业。我让cron工作也在创造多个工作岗位。问题现在是每当我使用数组创建多个cron作业时,第一个作业成功运行,但是在第二个作业上,在它运行它的时间之后,它失败并且给了我
uncaughtException: timer._repeat is not a function
这就是我所做的:
for (var data in lists){
sampleData.find({ id: lists[data].id }, function(err, samples){
if (err){
console.log("Server error");
}
else{
for (var sample in samples){
new cron("*/3 * * * *", function() {
console.log(sample);
}, null, true, null);
}
}
});
}
答案 0 :(得分:2)
如果你可以使用'cron'模块,你可以这样做
var CronJob = require('cron').CronJob;
new CronJob('*/3 * * * * *', function() {
console.log('You will see this message every 3 second');
}, null, true, 'America/Los_Angeles');
new CronJob('*/6 * * * * *', function() {
console.log('You will see this message every 6 second');
}, null, true, 'America/Los_Angeles');
new CronJob('*/7 * * * * *', function() {
console.log('You will see this message every 7 second');
}, null, true, 'America/Los_Angeles');