>  기사  >  웹 프론트엔드  >  예약된 작업을 구현하기 위한 NodeJs 샘플 코드

예약된 작업을 구현하기 위한 NodeJs 샘플 코드

小云云
小云云원래의
2017-12-06 11:01:311638검색

프로젝트에는 매일 0시에 실행되는 기능이 있는데, 원래는 setInterval을 사용해 구현하려고 했는데, 앞으로도 이런 요구가 계속 존재할 것 같은 느낌이 듭니다. 확장성이 높지 않습니다. node-schedule 패키지를 발견했기 때문에 이 기사에서는 NodeJs에서 예약된 작업을 구현하기 위한 샘플 코드를 공유하겠습니다.

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

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;
월,수,금요일 0시, 12시는 rule.dayOfWeek =[1,3,5];rule.hour =[0,12];rule .분 =0;rule.second =0;
.. ..


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: 매시간 고정 시간

예: 매시간 40분 실행

  var rule = new schedule.RecurrenceRule();

  rule.minute = 40;

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

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

  });

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

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

  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: 1초마다 실행

  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);
  });

위 내용은 NodeJs에서 예약된 작업을 구현하기 위한 샘플 코드인데, 도움이 되었으면 좋겠습니다.

관련 권장 사항:

JavaScript의 타이머 원리 분석 정보

PHP 예약 작업 프레임워크 공유

PHP는 예약 작업의 예약 실행을 어떻게 구현하나요?

위 내용은 예약된 작업을 구현하기 위한 NodeJs 샘플 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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