728x90
반응형
1. 작업 스케줄러
- 정해진 시간, 날짜, 간격으로 어떤 작업을 주기적으로 실행할 수 있도록 해 주는 프로그램
- ex)
- 데이터 백업: 정해진 주기로 데이터 백업
- 정기 리포트 생성: 주기적으로 데이터베이스의 데이터를 기준으로 리포트를 생성하여 담당자에게 이메일을 전송
- 일정 관리: 등록된 일정에 맞춰서 알림을 보냄
2. node-cron
- node-cron 설치
npm install node-cron
- 1분마다 작업이 실행되는 예제: 실행 시점이 기준이 아니라 시간 기준으로 매분마다 실행
const cron = require('node-cron');
cron.schedule('* * * * *', () => {
console.log('1분마다 작업이 실행.');
})
3. 작업 스케줄 설정
- 여러 개의 값을 설정해서 사용할 수 있는 예제
const cron = require('node-cron');
cron.schedule('1,2,4,5 * * * *', () => {
console.log('매 시간의 1분, 2분, 4분 5분에 실행.'); // ex) 15:01, 15:02, 15:04
})
- 시간 범위로 설정해서 사용할 수 있는 예제
const cron = require('node-cron');
cron.schedule('1-5 * * * *', () => {
console.log('매 시간의 1분, 2분, 3분, 4분, 5분에 실행.');
});
- 월과 요일에 대한 영문 이름으로 값을 설정할 수 있는 예제
const cron = require('node-cron');
cron.schedule('* * * January,September Sunday', () => {
console.log('1월과 9월의 일요일에 실행.');
});
- 매주 월요일 오전 9시에 작업을 실행하는 예제
const cron = require('node-cron');
cron.schedule('0 9 * * Monday', () => {
console.log('매주 월요일 09:00에 실행.');
});
- schedule() 함수
- expression: 작업을 실행시킬 cron 표현식
- function: 실행할 작업에 해당하는 함수
- options: 설정 옵션 오브젝트
ㄴ scheduled: 기본 값은 true, false로 설정할 경우 start() 함수를 호출해야 스케줄링이 시작됨
ㄴ timezone: 타임존 기준 설정
4. 타임존 설정
- 기존이 되는 타임존은 "Asisa/Seoul"
const cron = require('node-cron');
cron.schedule('0 1 * * *', () => {
console.log('매주 Asia/Seoul 타임존 기준으로 01:00마다 작업 실행');
}, {
scheduled: true,
timezone: "Asia/Seoul"
});
- 타임존 목록은 "https://momentjs.com/timezone/"에서 확인할 수 있다.
5. ScheduledTask() 함수
- start() : 실행 시점을 결정
const cron = require('node-cron');
const task = cron.schedule('* * * * *', () => {
console.log('start() 함수 실행 후부터 매분마다 실행된다.');
}, {
scheduled: false // start() 함수로 시작하기 전까지 작업이 실행되지 않음
});
task.start(); // 스케줄링 작업을 시작함
- stop(): 스케줄링된 작업을 중지할 수 있다.
const cron = require('node-cron');
const task = cron.schedule('* * * * *', () => {
console.log('매분마다 실행되는 작업이 stop() 함수 실행 후에는 중지가 됨.');
});
task.stop(); // 스케줄링된 작업을 종료시킴
- destroy(): 스케줄링된 작업을 완전히 삭제할 수 있다.
const cron = require('node-cron');
const task = cron.schedule('* * * * *', () => {
console.log('매분마다 실행되는 작업이 destroy() 함수 실행 후에는 완전히 삭제됨.');
});
task.stop(); // 스케줄링된 작업을 삭제함
- validate(): 작업을 실행시킬 cron 표현식이 올바르게 작성되었는지를 검증해 주는 함수
var valid = cron.validate('59 * * * *'); // true
var invalid = cron.validate('60 * * * *'); // false, 1-59까지 사용할 수 있으므로
728x90
반응형
'Runtime > Node.js' 카테고리의 다른 글
26. 엑셀 파일 처리(엑셀 파일 내용 수정) (3) | 2023.04.24 |
---|---|
25. 엑셀 파일 처리(엑셀 파일 읽기) (4) | 2023.04.24 |
23. 메일링 서비스(mailtrap 서비스) (2) | 2023.04.19 |
22. 메일링 서비스(이메일 보내기) (2) | 2023.04.18 |
21. 메일링 서비스(Nodemailer) (7) | 2023.04.18 |