NestJS @Cron사용하기 (스케쥴러)
안녕하세요. 알렉스 입니다. 이번에는 NestJS을 이용하여 restAPI요청(GET)을 해보도록 하겠습니다.
공식 사이트에서도 사용 방법에 대한 설명이 있습니다.
하지만 기본적인 동작 방법은 아래 글을 읽으시면 됩니다.
일단 NestJS에서 Cron을 사용하기 위해서는 관련 npm을 2개 설치해야 합니다.
npm install --save @nestjs/schedule
npm install --save-dev @types/cron
이제 설치후 아래와 같이 코드를 작성하면 됩니다.
app.module.ts에서 ScheduleModule를 Import하여 app에서 스케쥴러를 사용할수 있게 합니다.
이제 app.service.ts에 가서 스케쥴러를 사용합니다. 위 코드는 매초마다 console.log로 문자열 'Hello'와 오른쪽에 출력된 날짜가 나옵니다. '* * * * * *'는 매초마다 실행하라는 명령으로 코드를 실행하면 매초마다 터미널에 Hello문자열이 출력됨을 확인할수 있습니다.
사진1) Cron 사용 결과 |
그러면 이제 @Cron에 어떤 인자가 들어가야지 스케쥴러의 일정을 알수 있는지 확인해야 합니다.
* * * * * *
| | | | | |
| | | | | day of week : 1주일은 1~7로 나타냅니다. 1은 월요일 입니다.
| | | | month : 달을 의미하며 1~12로 나타냅니다. 1은 1월을 의미합니다.
| | | day of month : 그 달의 일을 말합니다. 1 ~ 31까지 있고 1은 그 달의 1일을 말합니다.
| | hour : 시간을 말합니다. 24시 기준이며 0 ~ 23까지 있습니다.
| minit : 분을 말합니다. 0~59까지 있습니다.
second : 초를 말하며 0 ~ 59까지 있습니다.
만약 해당 Cron을 1분마다 자동으로 실행할려면 '10 * * * * *'을 사용합니다. 이는 1분중 10초때에 실행한다는 의미 입니다. 아래 예시도 참고 부탁드립니다.
'30 * * * * *' : 초가 30일때 실행
'0 15 * * * *' : 분이 15분일때 실행
'0 */15 9-18 * * *' : 9시부터 18시까지 15분마다 실행
0 15 13 * * 1-5 : 월요일 부터 금요일까지 13:15분에 실행
0 59 23 * * * : 매일 23:59분에 실행
위 예제 GitHub 링크 및 Branch : NestJS_Cron
댓글
댓글 쓰기