node-schedule原理,
如何在节点项目中创建定时任务?下面这篇文章介绍你如何在node项目中使用node Schedule开发计划任务脚本,希望对你有所帮助!
node.js速度课程简介:进入学习
nodejs的后端也需要调度任务来做处理,比如备份、定时发送邮件、结算等操作。因此,节点调度,一个npm,被用来帮助我们制定计划任务脚本。
npinstall node-schedule节点计划中的每个计划任务都由一个作业对象表示。您可以手动创建它,然后执行schedule()方法来应用任务,或者使用scheduleJob(),如下所示。
作业对象是EventEmitter,并发出以下事件:
每次执行run后的事件。每次计划运行时的计划事件。取消的,当它在执行前调用取消的事件时。当触发的计划作业调用引发或退出事件以拒绝承诺时出现错误。(预定事件和取消事件都接收JavaScript date对象作为参数)。
注意,第一次执行任务时会立即执行,因此如果使用scheduleJob()方法创建任务,将会错过第一个预定事件触发器,但是可以手动查询调用。
Cron格式
* * * * * *
星期几(0 - 7) (0或7是孙)
月(1 - 12)
一月中的某一天(1 - 31)
一小时(0 - 23)
一分钟(0 - 59)
第二(0 - 59,可选)
每分钟的第30秒触发:“30 * * * *”
由每小时1分30秒触发:“30 1 * * *”
每天凌晨1: 1: 30触发:“30 1 1 * * *”
每月1日1: 1: 30触发:“30 1 1 1 * *”
2016年1月1日1: 1: 30触发:“30 1 1 1 2016 *”
在1: 01触发:每周30:“30 1 1 * * 1”
这里是个人对node-schedule封装类来使用增删改查定时任务
const schedule=require( node-schedule );
出口。间隔=类间隔{
构造函数({单位名称,维护时间,最后警报}) {
This.unit_name=单位名称//任务名称
this . maintain _ time=maintain _ time//定时时间
this . last _ alarm=last _ alarm //最后一个计划任务的名称
}
//生成新的计划任务
异步创建(回调){
//终止之前的预定任务。
如果(this.last_alarm!==) {
this.delete(this.last_alarm)
}
schedule . schedule job(` $ { this . unit _ name } `,` ${this.maintain_time} `,回调);
}
//删除计划任务
delete() {
if(schedule . scheduled jobs[this . unit _ name]){
schedule . scheduled jobs[this . unit _ name]。cancel();
返回true
}
返回false
}
//查找定时任务
findOne(name) {
if(schedule . scheduled jobs[名称]) {
返回schedule . scheduled jobs[名称]
}否则{
抛出新错误(“找不到任务名称”)
}
}
//查看所有计划任务
findAll() {
返回调度作业
}
}
这里是调用时定时任务Interval实例
//计划任务
新工具。间隔({
Unit_name:自动分配任务0 0 12 * * * ,
维护时间: 0 0 12 * * * ,
Last_alarm:自动分配任务0 0 12 * * *
}).create(async ()={
//写调度任务触发时要执行的函数。
})更多关于node的信息,请访问:nodejs教程!这就是如何使用节点计划在节点项目中创建计划任务的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。