Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- setInterval 외부 정지
- pm2 시작
- setInterval 중지
- html #select #option #multiple
- mySQL_Replication
- setInterval clear
- datagridview 직접입력
- DataGridView 직접 입력
- pm2
- 1883
- map이 undefined가 뜰 때
- pm2 설치
- timepicker
- mosquitto.conf
- DatePicker
- 맥 어드레스
- AntDesign
- mosquitto
- invalid data
- 서버동기화
- c# datagridview 데이터 넣기
- 데이터테이블 데이터 넣기
- allow_anonymouse
- setInterval 정지
- 공인IP
- pm2 확인
- transfer
- Replication
- listener 1883
- pm2 상태 확인
Archives
- Today
- Total
개발 노트
일정한 시간 마다 실행 본문
Jobs and Scheduling
node-schedule에서 예약하려는 모든 일들을 Job 객체라 부른다.
Job 객체는 EventEmiiter이며, 아래 이벤트들을 실행시킨다.
- run : Job 실행 뒤에 발생하는 이벤트
- scheduled: Job이 예약되었을 때의 이벤트
- canceled: Job이 실행되기 전 취소되었을 때의 이벤트.
"L"이 하나라는 걸 주의하자 - error: Job에 에러가 발생했을 때의 이벤트
- success: Job이 성공했을 때의 이벤트
설치
npm install node-schedule
시간 설정 방식
포맷은 아래와 같고, * 표시는 all을 의미한다.
기호의 의미
node-schedule에서 지원이 되지않는 `W`, `L`, `#`은 생략한다.
- 물음표 (?)
day-of-month 또는 day-of-week 중 하나를 공백으로 남겨둘 때 사용한다. 어떤 곳에서는 cron 데몬의 시동 시간으로 정의되어, 오전 8시 25분에 시작된다면 ? ? * * * *가
25 8 * * * *로 업데이트 되고 다시 시작할 때까지 매일 이 시간에 실행된다.
- 슬래시 (/)
슬래시를 간격과 결합하여 간격 값을 지정할 수 있다. 예를 들어, 분 필드의 * / 5 는 5 분마다 나타낸다.
- *
모든 값을 의미한다.
- 하이픈 (-)
하이픈은 범위를 정의한다. 예를 들어 2000-2010년은 2000년에서 2010년 사이의 모든 연도를 나타낸다.
- 퍼센트 (%)
백 슬래시() 이스케이프 하지 않는 한 개행 문자로 변경되어, 첫 번째 %이후의 모든 데이터는 표준 입력으로 명령에 전송된다.
예시
1. 매 10초마다 실행되는 스케줄
const schedule = require('node-schedule');
const j = schedule.scheduleJob('10 * * * * *, function() {
console.log("매 10초마다 실행");
});
2. 매 셋째 주 금요일 8시마다 실행되는 스케줄
const schedule = require('node-schedule');
const j = schedule.scheduleJob('* 8 * * 5#3', function() {
console.log("매 셋째 주 금요일 8시마다 실행");
});
3. Date 기반 표현(crone의 역순)
const schedule = require('node-schedule');
const date = new Date(2012, 11, 21, 5, 30, 0);
const j = schedule.scheduleJob(date, function() {
console.log("2012-11-21, 05:30에 실행");
});
4. Recurrence Rule 기반 표현
const schedule = require('node-schedule');
const rule = new schedule.RecurrenceRule();
// 배열 방식
rule.dayOfWeek = [0, 1, 2];
rule.hour = 17;
rule.minute = 0;
const job = schedule.scheduleJob(rule, function(){
console.log('배열방식: 일요일, 월요일, 화요일 17:00에 실행');
// 객체 방식
const job = schedule.scheduleJob({hour: 17, minute: 0, dayOfWeek: [0, 1, 2]}, function(){
console.log('객체방식: 일요일, 월요일, 화요일 17:00에 실행');
});
- RecurrenceRule 프로퍼티
- second (0-59)
- minute (0-59)
- hour (0-23)
- date (1-31)
- month (0-11)
- year
- dayOfWeek (0-6) Starting with Sunday
- tz
4. Job 종료
j.cancel();