>  기사  >  웹 프론트엔드  >  NodeJs에서 예약된 작업을 구현하는 방법(자세한 튜토리얼)

NodeJs에서 예약된 작업을 구현하는 방법(자세한 튜토리얼)

亚连
亚连원래의
2018-06-22 17:02:382781검색

이 기사에서는 NodeJs에서 예약된 작업을 구현하기 위한 샘플 코드를 주로 소개합니다. 편집자는 꽤 좋다고 생각하므로 지금 공유하고 참고용으로 제공하겠습니다. 에디터를 따라가서 살펴볼까요

프로젝트에는 매일 0시에 실행되는 함수가 있는데 원래는 setInterval을 사용해 구현하려고 했는데 이런 수요가 계속될 것 같아요. 미래에 존재하는 것은 그리 확장성이 없을 수도 있습니다.

검색하다가 node-schedule 패키지를 찾았습니다.

이제 사용 방법을 기록하세요

node-schedule은 항상 새로운 ScheduleJob 객체를 생성하여 특정 방법을 실행합니다.

시간 값은 다음 표와 같습니다

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

node-schedule을 사용하여 지정된 시간에 메소드를 실행합니다

var schedule = require('node-schedule');
var date = new Date(2017, 11, 16, 16, 43, 0);

var j = schedule.scheduleJob(date, function(){
 console.log('现在时间:',new Date());
});

2017년 12월 16일 16:43:00에 현재 시간을 출력합니다

지정된 시간 간격으로 메소드를 실행합니다.

var rule = new schedule.RecurrenceRule();
rule.second = 10;
var j = schedule.scheduleJob(rule, function(){
 console.log('现在时间:',new Date());
});

초가 10일 때마다 시간을 인쇄합니다. 10초마다 실행하려면 rule.second =[0,10,20,30,40,50]을 설정하면 됩니다.

rule은 초, 분, 시간, 날짜, dayOfWeek, 월, 연도와 같은 값 설정을 지원합니다.

마찬가지로:

초당 실행은 rule.second =[0,1,2,3... 59]입니다.
매분 0초에 실행되는 것이 rule.second =0
매시간 30분에 실행되는 것이 rule.분 =30;rule.second =0;
매일 0시에 실행되는 것이 rule.hour =0;rule .분 =0 ;rule.second =0;
....
매월 1일 10시는 rule.date =1;rule.hour =10;rule.분 =0;rule.second = 매주 0;
1, 3과 5 중 0시와 12시는 rule.dayOfWeek =[1,3,5];rule.hour =[0,12];rule.분 =0;rule입니다. .second =0;
...

Example

1: 시간 결정

예: 2014년 2월 14일 15:40 실행

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

  var date = new Date(2014,2,14,15,40,0);

  var j = schedule.scheduleJob(date, function(){

    console.log("执行任务");

  });

작업 취소

 j.cancel();

2: 고정된 시간 간격 hour

예: 매시간 40분에 실행

  var rule = new schedule.RecurrenceRule();

  rule.minute = 40;

  var j = schedule.scheduleJob(rule, function(){

    console.log("执行任务");

  });

3: 특정 요일, 특정 시간에 실행

예: 월요일부터 일요일까지 20:00에 실행

  var rule = new schedule.RecurrenceRule();

  rule.dayOfWeek = [0, new schedule.Range(1, 6)];

  rule.hour = 20;

  rule.minute = 0;

  var j = schedule.scheduleJob(rule, function(){

    console.log("执行任务");

  });

4: 매주 실행 second

  var rule = new schedule.RecurrenceRule();

  var times = [];

  for(var i=1; i<60; i++){

    times.push(i);

  }

  rule.second = times;

  var c=0;
  var j = schedule.scheduleJob(rule, function(){
      c++;
     console.log(c);
  });

위 내용은 모두를 위해 정리한 내용입니다. 앞으로 모든 분들께 도움이 되기를 바랍니다.

관련 기사:

WeChat 애플릿에서 비디오를 재생하기 위해 비디오 구성 요소를 사용하는 방법

WeChat 애플릿에서 오디오 구성 요소를 사용하는 방법

vue에서 axios 보조 캡슐화를 구현하는 방법

사용법 js에서 위아래 스크롤 알림 구현 방법

위 내용은 NodeJs에서 예약된 작업을 구현하는 방법(자세한 튜토리얼)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.