죠니랑 차트 만들기 - 3 :node 스케줄러 사용하기

죠니·2020년 10월 6일
0

DID Chart

목록 보기
3/3

앗뇽앗뇽 나는 죠니야~ 🙋🏻‍♀️


안녕하세요 여러분! 즐거운 명절 되셨나요?
저는 제 추석 연휴 9일을,,,, 도대체 누가 훔쳐 갔는지 범인을 찾고 있습니다 !🧐

튼 저는 퇼워라수목금퇼 잘 쉬구 월요일 출근 잘 하구 급한거 처리하고 또 시간이 되어 포스팅을 해볼까해여,,,ㅎㅅㅎ
월루는 이렇게 하는거 아니겠습니까 여러분 !! 심지어 오늘 회식있어서,,, 늦게까지 일해야 해여,,,

튼 각설하고 시작해보겠습니다 !

저는 총 3개의 서버를 두겠다고 말씀드렸는데요.

  1. 스케줄러 서버
  2. API 서버
  3. 프론트 서버

그 중 첫번째 서버 구축을 함께 해보도록 하겠습니다.

1. Scheduler Server🌰

스케줄러 서버는 일정 시간의 간격을 두면서 그 간격에 맞추어 특정 일을 반복 시키기 위해서 사용합니다.

저는 npm을 이용하여 다운을 받을거에요.
VSC를 이용하신다면 터미널을 열고 아니면 cmd나 iterm을 열고 폴더를 만들어 줄게요.

저는 스케줄러니까 간단하게 스케줄러라고 짓겠습니다.

$ mkdir scheduler

만들어졌나요 ? 그럼 그 폴더 안으로 들어가 보겠습니다.

$ cd scheduler

들어가졌나요 ? 역시 똑똑하군요 !!

시작이 절반이니까 우리 벌써 50%나 했어요~~

Node Schedule 다운

다음은 스케줄러를 가지고 와 볼게요.
스케줄러 폴더 안에서

$ npm install node-schedule

을 쳐 볼게요.
그러면

이렇게 뜨면서 node-modules라는 폴더와 package-lock.json이라는 파일이 생겨있습니다.
다들 확인 하셨나요 ?

scheduler.js 생성

scheduler.js라는 파일을 만들겠습니다.

아까 npm install을 이용하여 node-schedule을 다운받았던거 생각나시나요?

이제 그 아이를 가지고 와서 써보도록 하겠습니다.
노드 스케줄은 간격보다는 시간을 기준으로 스케줄링을 하고있습니다. 인터벌 설정이 훨씬 더 쉽고 cron과 달리 Window지원을 제공합니다.

*    *    *    *    *    *
┬    ┬    ┬    ┬    ┬    ┬
│    │    │    │    │    │
│    │    │    │    │    └ day of week (0 - 7) (0 or 7 is Sun)
│    │    │    │    └───── month (1 - 12)
│    │    │    └────────── day of month (1 - 31)
│    │    └─────────────── hour (0 - 23)
│    └──────────────────── minute (0 - 59)
└───────────────────────── second (0 - 59, OPTIONAL)

크론 형식의 스타일을 가지고 있지만 가장 가까운 평일이나 몇번째 요일같은 것들은 지원하지 않고 있습니다.

더 자세한 건 공식사이트를 확인해주세요 !

이제 우리는 1초에 한번씩 'hehe :)'를 출력해보겠습니다.

const schedule = require("node-schedule");

schedule.scheduleJob("*/1 * * * * *", () => {
    console.log("hehe :)");
  });

이렇게 코드를 작성해봅니다.

Package.json 설정

다음 저는 터미널에

$ npm init

을 하겠습니다.
그냥 엔터를 누르세요.막 누르다보면
Is this OK?라는 질문에 마지막 엔터를 누르면 package.json이 생깁니다.

{
  "name": "scheduler",
  "version": "1.0.0",
  "description": "",
  "main": "scheduler.js",
  "dependencies": {
    "node-schedule": "^1.3.2"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

저는 이렇게 생겼네요ㅎㅎ
아마 다들 비슷하시겠죠?
그렇다면 이제 "scripts"에 "test"밑에 코드 한 줄을 추가하겠습니다.

{
  "name": "scheduler",
  "version": "1.0.0",
  "description": "",
  "main": "scheduler.js",
  "dependencies": {
    "node-schedule": "^1.3.2"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "DEBUG=crypto-test node scheduler.js"
  },
  "author": "",
  "license": "ISC"
}

start줄을 잘 치셨나요 ?

그렇다면 아래 코드를 쳐볼게요.

$ npm start

1초에 한번씩 'hehe :)'가 잘 뜨고 있나요?

그렇다면 대성공 입니다!

오늘도 열코 즐코하세여~
그럼 20000!

profile
앗뇽앗뇽 나는 죠니야🙋🏻‍♀️

0개의 댓글