Я пытаюсь добавить Повестку дня в свое приложение узла, чтобы я мог запускать некоторые фоновые задачи ежедневно, например, Деактивировать пользователей, которые не вошли в систему в течение 60 дней.
Я пробовал следоватьпример на GitHub, связанный с модулем, но, кажется, сталкивается с проблемой зависания моего приложения, когда я пытаюсь загрузить сайт, и в итоге получаю «Ошибка 504: время ожидания сервера шлюза».Я также вижу undefined
в консоли.
Я знаю, что Повестка дня работает и работает правильно, так как в данный момент у меня есть простая работа, которая просто делает 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();
});
Я чувствую, что упускаю что-то действительно очевидное!