Я новичок в Agenda.js, и мне было интересно, можно ли запросить коллекцию повестки дня в MongoDB.Я перепробовал все, что мог придумать, но безуспешно.Я использую node.js ver.10.16.3 с expressver.4.16.2 и Повестка дня ver.1.0.3.
Вот соответствующий код: app.js
const agenda = new Agenda({ db: { address: db.mongoURI, collection: 'agendaJobs'} });
const AutomatedEmailService = {
sendCompletionReminder: async function(callback){
const projects = await Project.find({ completedOn:{$ne:null}, cmpConfirmationOn: null,
completedOn: { $gte: new Date((new Date().getTime() - (7 * 24 * 60 * 60 * 1000)))}
}).populate({
path: 'assignedMgr',
select: {fName:1, lName:1},
options: { lean: true}
});
/*loop projects send email*/
callback();
}
};
agenda.define('cmpConfirmationReminder', function(job, done) {
AutomatedEmailService.sendCompletionReminder(function(err,result) {
if(err) {
const emailMessage = {
from: "john@doe.com",
to: "mary@doe.com",
subject: "Error ....",
headers: {'X-Laziness-level': 1000 },
text: "Error: unable to send Completion Confirmation Reminder. " + err
};
transport.sendMail(emailMessage, function (err) {
if(err) throw err;
});
done(err);
}
else {
console.log('Agenda job has been defined: ' + result);
done();
}
});
});
agenda.on("ready", async function() {
const existingJobs = await AgendaJobs.count();
**console.log(existingJobs);**
// ** check database to see if job exists before running this line**
// agenda.schedule('monday at 06:00', 'cmpConfirmationReminder');
await agenda.start();
});
повестка дня Коллекция работ:
{
"_id" : ObjectId("5d8d4b9dcaf71f9d4c9f1d3e"),
"name" : "cmpConfirmationReminder",
"data" : null,
"type" : "normal",
"priority" : 0,
"nextRunAt" : ISODate("2019-09-30T13:00:00.678Z"),
"lastModifiedBy" : null
}
Я получаю 0когда я console.log (существующий Jobs), когда я знаю, что должно быть 1. Может кто-нибудь, пожалуйста, скажите мне, что мне здесь не хватает.Я должен иметь возможность запрашивать данные, верно?Заранее благодарю за помощь !!!