이 기사에서는 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 애플릿에서 오디오 구성 요소를 사용하는 방법
위 내용은 NodeJs에서 예약된 작업을 구현하는 방법(자세한 튜토리얼)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!