onComplete()不会在节点cron中调用
嗨,我试图testingnode-cron
但我不能在一个案件得到所需的答复。
当前的cron完成后,我需要再次启动cron请求。 所以,我需要onComplete()
来调用,但我无法获得callback。
我的代码片段是:
CronWrapper.prototype.pushNotificationCron = function() { // change console to winston in real implementation. console.log('Creating job'); var jobPattern = '*/10 * * * * *'; var job = new CronJob(jobPattern, onJobStarted, onJobCompleted, false); console.log('Starting job'); job.start(); }; var onJobStarted = function(){ var date = new Date(); console.log('Cron started on \t' + date); return; }; var onJobCompleted = function(){ winston.info('Job completed:'); };
输出:
Cron started on Tue Dec 16 2014 12:59:40 GMT+0530 (IST) Cron started on Tue Dec 16 2014 12:59:50 GMT+0530 (IST) Cron started on Tue Dec 16 2014 13:00:00 GMT+0530 (IST)
请指出我正在犯什么错误。
Lib细节:
“cron的”: “1.0.5”
在仔细阅读文档后,我发现我缺less了调用stop()。
如文件所述
onComplete – [可选] – 当作业完成, 停止时将触发的函数。
所以现在我手动调用stop()
完成并获得callback。 所以现在我的代码如下所示:
CronWrapper.prototype.pushNotificationCron = function() { // change console to winston in real implementation. console.log('Creating job'); var jobPattern = '*/10 * * * * *'; var job = new CronJob(jobPattern, function(){ var date = new Date(); console.log('Cron started on \t' + date); job.stop(); }, onJobCompleted, false); console.log('Starting job'); job.start(); }; // var onJobStarted = function(){ // var date = new Date(); // console.log('Cron started on \t' + date); // }; var onJobCompleted = function(){ winston.info('Job completed:'); };
产量
Cron started on Tue Dec 16 2014 13:13:30 GMT+0530 (IST) info: Job completed: