프로젝트에는 매일 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에서 예약된 작업을 구현하기 위한 샘플 코드인데, 도움이 되었으면 좋겠습니다.
관련 권장 사항:
위 내용은 예약된 작업을 구현하기 위한 NodeJs 샘플 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!