https://www.npmjs.com/package/node-cron
기본적인 cronjob 설정 방법은 알고있어야 좋다.
매주 일요일 자정에 운영하는 서비스에 사용자들에게 일괄적으로 메일보내주는 이벤트를 만든다고 쳤을때, 아래처럼 하면된다.
import { getRepository } from "typeorm";
import cron from "node-cron";
import { User } from "@/entity";
import { send_mail_notification } from "@/routes/api/v1/edms/etc"; // send_mail_notification이라는 메일 보내는 함수가 있다고 친다.
// cron job function
export default async () => {
cron.schedule("59 23 * * 0", async () => { // 59분 23시 매일 매달 일요일에
let users = await getRepository(User).find({ isUse: 1 });
await send_mail_notification(users.map(raw => raw.user_id));
});
};
======= 2022-04-18 업데이트 ========
PM2 프로세스 매니지먼트 툴을 사용하는 경우
// 매일 자정에 재시작됩니다.
pm2 restart app-name --cron-restart="0 0 * * *"
위 처럼 간단한 옵션으로 줄수도있다.