#node.js #agenda
#node.js #повестка дня
Вопрос:
Я пытаюсь использовать agenda
для планирования заданий на определенную дату и время, но задания не выполняются при достижении указанной даты.
Вот как я создаю задание:
agenda.create(type, data)
.schedule(new Date(startDate))
.repeatEvery('11 21 * * *', {timezone: 'Europe/Bucharest'})
.save();
Вот как я начинаю agenda
:
const Agenda = require('agenda');
const mongoDB = process.env.DB_PATH;
const mongoConnectionString = mongoDB;
let agenda = new Agenda({db: {address: mongoConnectionString, collection: 'jobs'}});
let 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() {
console.log('agenda start')
agenda.start();
});
}
function graceful() {
agenda.stop(function() {
process.exit(0);
});
}
process.on('SIGTERM', graceful);
process.on('SIGINT' , graceful);
export default agenda;
Это пример с заданием, которое не было запущено в запланированную дату:
Я что-то делаю не так?
РЕДАКТИРОВАТЬ: Задание запускается, если я это сделаю schedule(new Date())
, но оно не будет использовать определенную дату.
Комментарии:
1. Нет никаких доказательств того, что jobTypes включает задание, которое вы указали.
2. Это включено из переменных среды. Если я это сделаю
schedule(new Date())
, то это работает нормально, но это просто не запускает задание с указанной датой