일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- 노드
- 오라클
- oracle
- Python
- SAP ERP
- nodejs
- Spring Framework
- SAP ABAP
- db
- 자바스크립트
- JavaScript
- 도커
- 영어
- Programming
- 딥러닝
- 자바
- Oracle DB
- 비지니스영어
- SAP
- ABAP
- node.js
- Mac
- 파이썬
- Java
- IT
- sap mm
- 유럽여행
- 오라클 디비
- 머신러닝
- docker
- Today
- Total
JIHYUN JEONG
[Node.js] node-schedule 모듈 (1), job scheduler(배치잡) 본문
[Node.js] node-schedule 모듈 (1), job scheduler(배치잡)
StopHyun 2017. 12. 18. 22:41node-schedule 모듈은 유용한 Job scheduler 외부 모듈입니다. 이 모듈을 통해서 특정 날짜 및 시간에 scheduled job을 실행 할 수 있습니다. 그리고 해당 Job을 한번 또는 반복으로 설정해서 사용할 수 있습니다. 또한 interval-bases scheduling이 아닌 time-based scheduling 입니다.
이전에 79. 정기적으로 실행하기, setInterval(fn, milsec) 에서 setInterval()에 대해서 배웠습니다. setInverval 는 설정된 주기 마다 특정 함수가 실행이 됩니다. 반면 node-schedule모듈은 예를들어 특정 시간 30분 또는 17시 20분 등과 같이 특정 시간에 실행되야 할때 사용 하는 것이 더 적합 합니다.
참고 : 만약에 어떤 schedule job이 script가 실행되지 않을때 도 지속되어야 한다면 node-cron 모듈을 사용하는 걸 고려 하는게 좋습니다. (https://github.com/kelektiv/node-cron)
우선 아래의 명령어를 통해서 node-schedule 모듈을 설치합니다.
npm install node-schedule
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
const schedule = require('node-schedule');
// 특정시간에 한번 // 2017년 12월 16일 오후 19시 27분에 수행할 작업 const date = new Date(2017, 11, 16, 19, 27, 0);
// 2017-12-16T10:27:00.000Z (GMT 0 기준) console.log(date);
const j = schedule.scheduleJob(date, () => { console.log('no pain, no gain'); });
// 매시간마다 한번 const rule = new schedule.RecurrenceRule(); rule.minute = 32;
const k = schedule.scheduleJob(rule, () => { console.log('Laziness is nothing more than the habit of resting before you get tired.'); });
// 작업 취소 // j.cancel(); // k.cancel(); |
// 특정시간에 한번
// 2017년 12월 16일 오후 19시 27분에 수행할 작업
const date = new Date(2017, 11, 16, 19, 27, 0);
// 2017-12-16T10:27:00.000Z (GMT 0 기준)
console.log(date);
const j = schedule.scheduleJob(date, () => {
console.log('no pain, no gain');
});
schedule.scheduleJob()에 date객체의 특정시간을 전달한다.
// 매시간마다 한번
const rule = new schedule.RecurrenceRule();
rule.minute = 17;
const k = schedule.scheduleJob(rule, () => {
console.log('Laziness is nothing more than the habit of resting before you get tired.');
});
매시간 17분마다 해당 job을 실행하기 위해 RecurrenceRule()객체 인스턴스를 생성해서
schedule.scheduleJob()에 전달한다.
또한 j.cancel(); 를 통해서 작업 취소를 할 수 있다.
해당 소스코드를 데스크탑에 시간에 맞춰 수정한 후 실습해 보면 console창에 해당 문구들이 출력 된다.
참고 사이트 : https://github.com/node-schedule/node-schedule
Never be entirely idle, but either be reading, or writing, or praying or meditating or endeavoring something for the public good. by Thomas a Kempis |
'Information Technology > Node.js' 카테고리의 다른 글
[Node.js] Curl 커맨드 command를 Nodejs/Python/로 작성해보기 (0) | 2018.01.04 |
---|---|
[Node.js] node-schedule 모듈 (2), job scheduler(배치잡) (0) | 2018.01.03 |
[Chapter 6] Node.js 전역객체 (Global Object) console, process (0) | 2017.08.29 |
[Chapter 5] Node.js 모듈화(Module) (0) | 2017.08.27 |
[Chapter 4] Node.js 함수의 유효범위(Scope) 와 익명함수 (0) | 2017.08.22 |