我想生成用户定义的任务。基本上,他们有一些输入,例如:当他们希望 cron 运行时,带有 weekDays 的下拉列表、startDate 和时区。此任务是为项目定义的。在他们定义的项目上,他们想要创建一些报告。
我的代码现在的样子
/src/agenda.js
const Agenda = require('agenda');
const connectionOpts = {db: {address: process.env.MONGODB_URI'}};
const agenda = new Agenda(connectionOpts);
const jobTypes = ["create-report"];
jobTypes.forEach(type => {
require('./jobs/' + type);
});
if (jobTypes.length) {
agenda.start(); // Returns a promise, which should be handled appropriately
}
module.exports = agenda;
/src/jobs/create-report.js
agenda.define("create-report", (job: any, done: any) => {
console.log('hello');
})
/src/controllers/project.controller
// ProjectController, after project update process data
await agenda.schedule('in 10 seconds', 'create-report', {to: 'xyz@example.com', project: project});
我看到该作业是在数据库中创建的,但它没有运行该作业。我使用 LoopBack 作为框架。