노드가 예약된 작업을 구현하는 방법: 1. 관리를 위해 setTimeOut 및 이벤트 이벤트를 사용합니다. 2. 추가된 모든 이벤트를 정렬하고 현재 시간과 가장 최근 이벤트 발생 시간 사이의 시간 간격을 계산합니다. 3. setTimeOut을 호출하여 콜백을 설정합니다. 할 수 있다.
이 튜토리얼의 운영 환경: linux7.3 시스템, node18.4.0 버전, Dell G3 컴퓨터.
노드는 예약된 작업을 어떻게 구현하나요?
노드 예약 작업(노드-일정 모듈)
매일 12시에 서버의 Git 코드를 업데이트하는 기능을 구현합니다
app.js 파일 koa2 프레임워크
import schedule from 'node-schedule'; import updateCode from './controllers/hcpLan/fetch' const app = new Koa(); const router = new Router(); router.get( '/', (ctx, next) => { ctx.body = 'hello' }); app.use(router.routes()).use(router.allowedMethods()); let rule = new schedule.RecurrenceRule() /**每天的凌晨12点更新代码*/ rule.hour = 0 rule.minute = 0 rule.second = 0 /**启动任务*/ schedule.scheduleJob(rule, () => { updateCode.cloneRepo(); console.log('代码更新了!'); }) app.listen(3000)
node-schedule 원칙: 관리를 위해 setTimeOut 및 이벤트 이벤트를 사용하고, 추가된 모든 이벤트를 정렬하고, 현재 시간과 가장 최근 이벤트 발생 시간 사이의 시간 간격을 계산한 후, setTimeOut을 호출하여 콜백을 설정합니다. 일반적으로 이벤트에는 두 가지 유형이 있습니다. 하나는 일회성 작업이고, 다른 하나는 주기적 작업입니다. 기간을 기준으로 다음 주기 작업을 생성하고 작업 목록에 추가한 후 순서를 변경합니다. 각 작업 호출이 끝나면 다음 작업이 계산되고 준비됩니다.
1. 타이머 설정
노드 스케줄을 사용하면 다양한 규칙을 통해 타이밍을 구현할 수 있습니다
1. Cron 스타일 타이머
* * * * * * ┬ ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ | │ │ │ │ │ └ 一周的星期 (0 - 7) (0 or 7 is Sun) │ │ │ │ └───── 月份 (1 - 12) │ │ │ └────────── 月份中的日子 (1 - 31) │ │ └─────────────── 小时 (0 - 23) │ └──────────────────── 分钟 (0 - 59) └───────────────────────── 秒 (0 - 59, OPTIONAL) var schedule = require('node-schedule'); //当分钟为42时,执行一个cron任务 var j = schedule.scheduleJob('42 * * * *', function(){ console.log('执行了!'); });
2.Date 객체 규칙 타이머
var schedule = require('node-schedule'); var date = new Date('2017-09-26 22:00:00'); var j = schedule.scheduleJob(date, function(){ console.log('执行了!'); });
3.RecurrenceRule 인스턴스 규칙 타이머
var schedule = require('node-schedule'); var rule = new schedule.RecurrenceRule(); rule.minute = 42; var j = schedule.scheduleJob(rule, function(){ console.log('执行了!'); });
, https://github.com/node-schedule/node-schedule
권장 학습: "nodejs 비디오 튜토리얼"
위 내용은 노드에서 예약된 작업을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!