node-cron 모듈은 cron구문을 이용해서 원하는 시간마다 원하는 스크립트가 작동되게 할수있습니다.
전 최대한 간단하게 쓰기위해 express 모듈과 함께 써보지는 않을거고
일정시간마다 console.log로 출력까지만 해보겠습니다.
먼저 다음 문장을 입력해서 모듈을 설치해줍니다.
npm i node-cron
설치해준다음 아래와 같이 js파일에서 모듈을 불러와줍시다.
var cron = require('node-cron');
불러와준 cron모듈은 다음과 같이 사용할수있습니다.
cron.schedule('크론 문장',실행할 함수);
이렇게 입력된 크론 문장에 따라서 함수를 실행해줍니다.
간단하게 크론 문법에 대해 소개해드릴게요.
이렇게 초(옵션) 분 시간 일 월 요일 순으로 원하는 값을 써주면 됩니다.
문장을 6번 ( * * * * * * ) 으로 나눠쓰면 초까지 쓰는것으로 되고,
5번 ( * * * * * ) 만 쓰면 분까지만 쓰는게 됩니다.
이건 각 항목에 허용되는 숫자의 한계치들입니다.
요일에서 조금 헷갈릴수 있을텐데 일요일이 0으로 시작해 월요일 1, 토요일 6으로 끝납니다. 7도 일요일인데
왜 있는건지 모르겠네요. 0-6까지만 쓰시는게 좋지 않을까 생각합니다.
그리고 각 항목에 뭘 써야할지 알려드리겠습니다.
앞으로 설명드릴 항목의 표현자들은 모두 혼용해서 쓸수있으니 응용법을 생각하며 봐주세요
먼저 *은 그 항목의 모든 값에대해 작동하게 할수있습니다.
예를들어, * * * * *는 모든 분 모든 시간 모든 일 모든 월 모든 요일에 작동하기 때문에
1분마다 작동하게 됩니다.
또한 그냥 숫자를 입력해줄수도 있는데
1 1 1 1 1 이런식으로 입력하게 되면 1분 1시 1일 1월 월요일에 실행하게 됩니다.
1,2,3 * * * * 이런식으로 숫자를 ,로 나눠 입력할수도 있습니다. (모든시간 1,2,3분마다 실행됩니다)
그리고 / 기호를 사용해 steps를 사용할수 있는데,
*/2 * * * * 이런식으로 써주면 0분부터 시작해서 매 2분 (0,2,4,6 ... 54,56,58,0) 마다 실행이 되게 됩니다.
원하는 숫자부터 steps로 올라갈수도 있는데
1/2 * * * * 이런식으로 써주면 1분부터 시작해서 매 2분 (1,3,5,7 ... 55,57,59,1) 마다 실행이 됩니다.
다음과 같이 요일을 영어로 입력해 가독성을 높이는것도 가능합니다
최종적으로 코드를 입력해볼게요.
매 분마다 console.log를 실행하는 코드입니다
var cron = require('node-cron');
cron.schedule('* * * * * *', function(){
console.log('node-cron 실행!');
});
그리고 매 시간 10분마다 실행하는 코드입니다
var cron = require('node-cron');
cron.schedule('*/10 * * * * *', function(){
console.log('node-cron 실행!');
});
마지막으로 1시 3분부터 2분마다 그리고 4분에 실행하는 코드입니다.
var cron = require('node-cron');
cron.schedule('3/2,4 1 * * *', function(){
console.log('node-cron 실행!');
});
긴글 읽으시느라 정말 수고하셨습니다! 제글을 읽고 완벽히 이해되셨으면 좋겠습니다.
그리고 마지막으로 크론구문을 입력하면 어떤 구문인지 설명해주고
랜덤구문이 나와 공부까지 할수있는 사이트를 소개해드리겠습니다.
https://crontab.guru/
crontab.guru - the cron schedule expression editor
loading... Cron job failures can be disastrous! We created Cronitor because cron itself can't alert you if your jobs fail or never start. Cronitor is easy to integrate and provides you with instant alerts when things go wrong. Learn more about cron job mon
crontab.guru
만약 제글에서 잘못된부분이 있었다면 바로 댓글로 얘기해주세요! 즉각 수정하겠습니다
'JavaScript > Npm Modules' 카테고리의 다른 글
NodeJS mobile-detect로 모바일 정보 가져오기 (0) | 2020.03.23 |
---|---|
NodeJS 세션 express-session 모듈 써보기 (0) | 2020.03.09 |