WWW.lllT.neTnode新项目中如何建立计划任务?下边这篇文章内容给我们介绍一下在node新项目中怎么用Node Schedule拟定计划任务脚本制作,期待对各位有些协助!

nodejs的后端开发也是必须计划任务做解决,比如备份数据,定时发送电子邮件,清算等实际操作,因此应用了Node Schedule这一npm协助企业拟定计划任务脚本制作。

npm install node-schedule

Node Schedule 中的每一个计划任务都由一个Job目标表明。可以手动式建立,随后实行schedule()方式以运用每日任务,或应用scheduleJob()如下所示。

Job目标是`EventEmitter,并传出下列事情:

  • run每回实行后的事情。
  • scheduled每回方案运作时的事情。
  • canceled,当它在实行以前读取被撤消的事情。
  • 一个error当被开启生产调度安全作业读取抛出去或撤出事情回绝Promise

scheduledcanceled事情都接受一个 JavaScript 日期目标做为主要参数)。 留意的是,每日任务是第一次立即执行的,因而假如应用scheduleJob()方式建立每日任务,将错过了第一个scheduled 事情开启,但您可以手动式查看读取。

Cron文件格式

*    *    *    *    *    *
┬    ┬    ┬    ┬    ┬    ┬
│    │    │    │    │    │
│    │    │    │    │    └ day of week (0 - 7) (0 or 7 is Sun)
│    │    │    │    └───── month (1 - 12)
│    │    │    └────────── day of month (1 - 31)
│    │    └─────────────── hour (0 - 23)
│    └──────────────────── minute (0 - 59)
└───────────────────────── second (0 - 59, OPTIONAL)

每分的第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的1点1分30秒开启 :'30 1 1 * * 1'

这儿是个体对node-schedule封装形式类来应用增删计划任务

const schedule = require('node-schedule');

exports.Interval = class Interval {
  constructor({ unit_name, maintain_time, last_alarm }) {
    this.unit_name = unit_name          // 每日任务名称
    this.maintain_time = maintain_time  // 按时時间
    this.last_alarm = last_alarm || ""        // 上一次计划任务名称
  }

  // 转化成新的计划任务
  async create(callback) {
    // 停止之间的计划任务
    if (this.last_alarm !== "") {
      this.delete(this.last_alarm)
    }
    schedule.scheduleJob(`${this.unit_name}`, `${this.maintain_time}`, callback);
  }

  // 删掉计划任务
  delete() {
    if (schedule.scheduledJobs[this.unit_name]) {
      schedule.scheduledJobs[this.unit_name].cancel();
      return true
    }
    return false
  }

  // 寻找一个计划任务
  findOne(name) {
    if (schedule.scheduledJobs[name]) {
      return schedule.scheduledJobs[name]
    } else {
      throw new Error("找不到每日任务名")
    }
  }

  // 查询全部的计划任务
  findAll() {
    return schedule.scheduledJobs
  }
}

这儿是读取时计划任务Interval案例

// 计划任务
new Util.Interval({
  unit_name: '全自动派发每日任务 0 0 12 * * *',
  maintain_time: '0 0 12 * * *',
  last_alarm: '全自动派发每日任务 0 0 12 * * *'
}).create(async () => {
  // 载入你自己想在计划任务开启的情况下,要想实行的涵数
})

大量node有关专业知识,请浏览:nodejs 实例教程!!

以上便是node新项目中怎么用Node Schedule建立计划任务的详尽具体内容,大量请关心自学java网其他相关文章!

WWW.lllT.neT

声明:有的资源来自网络转载,版权归原作者所有,如有侵犯到您的权益请联系邮箱:our333@126.com我们将配合处理!

原文地址:node新项目中怎么用Node Schedule建立计划任务发布于2021-12-13 15:54:01