【问题标题】:Agenda scheduled job running only once议程计划作业仅运行一次
【发布时间】:2016-04-24 17:54:32
【问题描述】:

我有一个示例程序可以开始使用 Agenda,但它在第一次运行后卡住了。

 var Agenda = require('agenda');

 var agenda = new Agenda({db: {address: 'localhost/sample-dev', collection: 'pollingJob'}});

agenda.define('First1', function(job, done) {
  var d = new Date();
  console.log("Hello First Job at " + d );
});

agenda.on('ready', function() {
  agenda.every('5 seconds', 'First1');
  agenda.start();
});

我已经按照Agenda 上的说明完成了所有操作,我是否遗漏了什么?

【问题讨论】:

    标签: node.js mongodb scheduled-tasks


    【解决方案1】:

    来自docs

    当作业名称的作业运行时,它将传递给 fn(job, done)。 为了保持异步行为,你必须调用 done() 当你 处理工作。如果你的函数是同步的,你可以省略 done 来自签名。

    因此,从上面省略回调并将基本示例重新定义为同步作业,如下所示:

    agenda.define('First1', function(job) {
        var d = new Date();
        console.log("Hello First Job at " + d );
    });
    
    agenda.on('ready', function() {
        agenda.every('5 seconds', 'First1');
        agenda.start();
    });
    

    【讨论】:

    • 感谢 Chridam!我没有意识到这部分。
    • @swatek 不用担心,很乐意为您提供帮助 :)
    猜你喜欢
    • 2020-09-24
    • 1970-01-01
    • 2023-03-04
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    相关资源
    最近更新 更多