【问题标题】:Agenda.js preventing app.js workingAgenda.js 阻止 app.js 工作
【发布时间】:2018-05-10 13:37:26
【问题描述】:

我正在尝试将议程添加到我的节点应用程序中,以便我可以每天运行一些后台任务,例如停用 60 天未登录的用户。

我已尝试按照与模块关联的 GitHub 上的示例进行操作,但每当我尝试加载站点时,我的应用程序挂起似乎遇到了问题,并最终收到“错误 504:网关服务器超时” .我还在控制台中看到了undefined

我知道 Agenda 已经启动并且工作正常,因为我现在有一个简单的工作,就是每分钟执行一次 console.log。

在我的 app.js 中,我需要我的 worker.js 文件:

var agenda = require('./worker.js');

我的 worker.js 只是简单的 1 行:

require('./lib/agenda.js');

议程.js:

var Agenda = require('agenda');

var connectionString = "mongodb://" + process.env.MONGODB_USER + ":" +
  process.env.MONGODB_PASSWORD + "@" +
  process.env.DATABASE_SERVICE_NAME + ':' +
  process.env.MONGODB_PORT + '/' +
  process.env.MONGODB_DATABASE;

 var agenda = new Agenda({db: {address: connectionString}});

 var jobTypes = process.env.JOB_TYPES ? process.env.JOB_TYPES.split(',') : [];

 jobTypes.forEach(function(type){
    require('./jobs/' + type)(agenda);
 });

 if (jobTypes.length) {
    agenda.on('ready', function() {
        agenda.every('* * * * *', 'test job')   //Run job at 0030 every day

        agenda.start();
    })
 }

 module.exports = agenda

测试作业在作业文件中定义,如下所示:

agenda.define('test job', function(job, done) {
    console.log ('Agenda job executed');
    done();
});

我觉得我错过了一些非常明显的东西!

【问题讨论】:

    标签: node.js agenda


    【解决方案1】:

    原来我需要在我的议程.js 的启动命令部分添加一个agenda.processEvery

    var Agenda = require('agenda');
    
    var connectionString = "mongodb://" + process.env.MONGODB_USER + ":" +
      process.env.MONGODB_PASSWORD + "@" +
      process.env.DATABASE_SERVICE_NAME + ':' +
      process.env.MONGODB_PORT + '/' +
      process.env.MONGODB_DATABASE;
    
     var agenda = new Agenda({db: {address: connectionString}});
    
     var jobTypes = process.env.JOB_TYPES ? process.env.JOB_TYPES.split(',') : [];
    
     jobTypes.forEach(function(type){
        require('./jobs/' + type)(agenda);
     });
    
     if (jobTypes.length) {
        agenda.on('ready', function() {
            agenda.every('* * * * *', 'test job')   //Run job at 0030 every day
    
            agenda.processEvery('one minute');    //<====== This is the new line
    
            agenda.start();
        })
     }
    
     module.exports = agenda
    

    【讨论】:

      猜你喜欢
      • 2019-05-08
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 2018-04-02
      • 2016-11-30
      • 1970-01-01
      • 2011-12-28
      • 2020-02-07
      相关资源
      最近更新 更多