我正在尝试使用议程包来调度我的Nodejs项目中的一些任务,但我面临一些与议程包相关的超时问题,所以我的问题是如何在我的项目中设置连接属性?使用mongoose包建立MongoDB Atlas连接如何使用MongoDB的现有连接与我的议程?
在我当前的代码中,当我执行一些任务时,它不会在我的Atlas中显示任何内容,但我只能看到AgendaJobs集合,但在我在Nodejs项目中调度一些任务后,我看不到它里面的任何内容。
我该如何正确地做事?
db.js:
import mongoose from 'mongoose';
import dotenv from 'dotenv';
dotenv.config();
mongoose.set('strictQuery', false);
export const MongoDBConnection = async () => {
try {
const connection = await mongoose.connect('mymongourl');
console.log('Connected to database');
return connection.connection.getClient();
} catch (err) {
console.log('Error connecting to database: ' + err);
}
};
字符串
我只是在index.js文件中调用这个函数,就像下面的MongoDBConnection()
议程连接:
import { MongoDBConnection } from '../database/db.js';
const client = await MongoDBConnection();
const agenda = new Agenda({ mongo: client.db('AgendaJobs') });
agenda.on('ready', () => {
console.log('Schedule the task')
agenda.start();
});
型
1条答案
按热度按时间krcsximq1#
根据我对这里显示的代码的回答-你错过了很多。根据文件
在使用作业之前,必须定义其处理行为。
议程包的核心概念是有一个议程示例,它对定义的作业进行排队、调度和执行,这些作业被记录到agendaJobs集合中。您有示例,但没有已定义的作业。当您调用
await agenda.start()
时,没有任何定义附加到此示例,这意味着示例和作业之间存在断开连接。您需要首先为特定作业创建定义,然后决定如何创建这些作业。以下是一些帮助我开始的文章: