node.js의 작업관리자 프로그램. Agenda는 여러개의 크론 job을 관리하기 위한 노드 모듈이다. job을 등록하고 job에 대한 정보를 유지하기 위해 MongoDB를 이용한다. 따라서 agenda를 사용한다면 MongoDB를 꼭 설치해야한다.

const agenda = require("agenda")
const db = new Agenda({db: {address: "localhost:27017/agenda-sample"}});

// Async job. 비동기 작업을 정의할 수 있다. 인자를 받아서 콘솔로그를 찍는 job을 정의한다.
agenda.define('greeting', function(job,done){
	const data = jobs.attrs.data;
	console.log("hello"+data);
	done(); // done 콜백함수를 실행한다.
})

// Sync job.
agenda.define('greeting', function(job){
	const data = jobs.attrs.data;
	console.log({"hello"+data);
})

// mongodb랑 연결이 성공적으로 이루어지면 불러진다. 
// mongodb랑 연결이 되었으니 agenda.start()를 불러 agenda를 시작하면 된다.
// 그럼 예약된 job들이 실행된다.
agenda.on('ready', function(){
	console.log("Connected to MongoDB");
	agenda.start();
}

Agenda는 결국 MongoDB를 이용해서 스케줄을 관리하는 crontab과 동일하다. 처음에는 MongoDB를 사용하기 위해 Agenda를 사용하는건가 했는데, 그냥 스케줄 관리를 위해 Node.js에서 Agenda를 사용하고 Agenda는 MongoDB를 사용하여 스케줄 관리를 한다.

참조

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=couponpapa&logNo=221242899397