我正在使用Agenda插件作为Scheduler(以及Express)

这是我的代码

var express = require('express');
var Agenda = require('agenda');


var agenda = new Agenda({db: { address: 'localhost:27017/express'}});
var app= express();

app.get('/notify', function(req,res){
    res.type('text/plain');
    var message = req.param('message');
    agenda.now('send reminder', {data:message});

    res.send(message);
});

    agenda.define('send reminder', function(job,done){
        console.log(job.attrs.data.data);
    });


agenda.start();
app.listen(80);

这些是面临的问题
  • 并非所有消息都已打印
  • 有时消息多次打印。
  • (大约)调用10次后,调度程序将永远停止
  • 调用计划的
  • 至少要延迟2秒

    会有些光

    最佳答案

    我的代码中的问题是,我忘记了调用done()方法

    应该是

    agenda.define('send reminder', function(job,done){
            console.log(job.attrs.data.data);
    done();
    
        });
    

    要么
    agenda.define('send reminder', function(job){
            console.log(job.attrs.data.data);
        });
    

    关于javascript - Node JS议程计划程序-缺少计划的任务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21579132/

    10-09 22:16