티스토리 뷰
Node.js는 많은 개발자들이 선호하는 서버 사이드 자바스크립트 런타임입니다. Node.js를 사용하여 스케줄링 작업을 수행하려면, node-cron 라이브러리를 사용할 수 있습니다. node-cron은 Cron을 이용하여 작업을 예약하고 실행하는 것을 도와주는 라이브러리입니다. 이번 글에서는 node-cron을 사용하는 방법에 대해 알아보겠습니다.
1. node-cron 설치하기
node-cron을 사용하기 위해서는 우선 npm을 통해 라이브러리를 설치해야 합니다. 다음 명령어를 사용하여 설치할 수 있습니다.
npm install --save node-cron
2. 예제 코드 작성하기
node-cron을 사용하기 위해서는 예약하려는 작업을 실행할 함수를 작성해야 합니다. 예를 들어, "Hello, world!"를 출력하는 함수를 작성해보겠습니다.
function sayHello() {
console.log("Hello, world!");
}
이제 node-cron을 사용하여 이 함수를 1분마다 실행해보겠습니다. 다음 코드를 작성합니다.
const cron = require("node-cron");
cron.schedule("* * * * *", function() {
sayHello();
});
이제 위 코드를 실행하면, 매 분마다 "Hello, world!"가 출력됩니다. Cron의 시간 설정 표현식(* * * * *)은 분, 시간, 일, 월, 요일을 나타내며, 각각의 필드는 다음과 같은 의미를 가집니다.
분: 0부터 59까지의 정수
시간: 0부터 23까지의 정수
일: 1부터 31까지의 정수
월: 1부터 12까지의 정수 또는 JAN부터 DEC까지의 문자열
요일: 0부터 6까지의 정수 또는 SUN부터 SAT까지의 문자열
3. Cron 표현식 자세히 알아보기
위 예제 코드에서도 언급한 것처럼, Cron 표현식을 사용하여 작업을 예약하고 실행할 수 있습니다. Cron 표현식은 다음과 같은 형식으로 이루어져 있습니다.
* * * * *
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ └───── 요일 (0 - 6) (0이나 7이면 SUN)
│ │ │ └────────── 월 (1 - 12)
│ │ └─────────────── 일 (1 - 31)
│ └──────────────────── 시간 (0 - 23)
└───────────────────────── 분 (0 - 59)
위 예제 코드에서 사용한 "* * * * *"은 매 분마다 실행하라는 것을 의미합니다. 여기서 사용할 수 있는 값의 종류와 의미는 다음과 같습니다.
*: 모든 값. 예를 들어, 분 필드가 *이면 매 분마다 실행합니다.
n: 숫자 값. 예를 들어, 분 필드가 5이면 5분마다 실행합니다.
n-m: 범위 값. 예를 들어, 분 필드가 5-10이면 5분, 6분, 7분, 8분, 9분, 10분마다 실행합니다.
*/n: 간격 값. 예를 들어, 분 필드가 */5이면 5분 간격으로 실행합니다.
n,m: 목록 값. 예를 들어, 분 필드가 5,10,15이면 5분, 10분, 15분마다 실행합니다.
Cron 표현식 예제
다음은 Cron 표현식을 사용하여 작업을 예약하는 예제 코드입니다.
1) 특정 시간에 작업 예약하기
// 2023년 4월 5일 12시 30분에 실행
cron.schedule("30 12 5 4 * 2023", function() {
console.log("Hello, world!");
});
2) 특정 시간 범위에 작업 예약하기
// 9시부터 17시까지 30분 간격으로 실행
cron.schedule("*/30 9-17 * * *", function() {
console.log("Hello, world!");
});
3) 스케줄링 작업 취소하기
node-cron을 사용하여 예약된 작업을 취소하려면 cron.schedule() 메서드가 반환하는 객체의 stop() 메서드를 호출하면 됩니다. 예를 들어, 다음 코드는 1분마다 실행되는 작업을 예약하고, 5분 후에 작업을 취소합니다.
const cron = require("node-cron");
const task = cron.schedule("* * * * *", function() {
console.log("Hello, world!");
});
setTimeout(function() {
task.stop();
console.log("Task stopped.");
}, 5 * 60 * 1000);
4. 정리
node-cron은 Node.js에서 Cron 작업을 예약하고 실행하는 라이브러리입니다. cron.schedule() 메서드를 사용하여 Cron 표현식을 지정하고 작업을 예약할 수 있습니다. Cron 표현식은 분, 시간, 일, 월, 요일 등의 필드를 조합하여 작업을 예약하는데 사용됩니다. *, n, n-m, */n, n,m 등의 값을 사용하여 특정 시간, 간격, 범위, 목록 등의 작업을 예약할 수 있습니다. cron.schedule() 메서드가 반환하는 객체의 stop() 메서드를 호출하여 예약된 작업을 취소할 수 있습니다.
'IT 한스푼' 카테고리의 다른 글
Node.js 서비스 배포 PM2 사용하여 server 성능 향상(멀티스레드) (0) | 2023.04.17 |
---|---|
Node.js Socket.io 사용법 및 예제 코드 (0) | 2023.04.12 |
MySQL을 이용한 위도 경도 거리 계산 방법과 구현 방법 (0) | 2023.04.04 |
Node.js의 비동기 처리 방식과 콜백 지옥 탈출하기 (0) | 2023.03.30 |
Socket.IO 연결 끊김 방지하기 - pingTimeout, pingInterval 설정 및 keep-alive 요청 (0) | 2023.03.28 |
- Total
- Today
- Yesterday
- 예방
- 운동
- 라이프스타일
- vue.js
- 서버
- FCM
- javascript
- 크로스핏
- 운동 효과
- 건강한 식습관
- socket.io
- 스포츠
- node.js
- 관절염
- 고지혈증
- 고혈압
- 당뇨
- express.js
- mysql
- Firebase Cloud Messaging
- pm2
- 딥링크
- 단백질
- 웹 개발
- 혈당 관리
- 관리
- 다이어트
- 건강
- 체중 감량
- 요리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |