广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >node项目中如何使用Node Schedule创建定时任务
  • 627
分享到

node项目中如何使用Node Schedule创建定时任务

2024-04-02 19:04:59 627人浏览 薄情痞子
摘要

这篇文章主要介绍了node项目中如何使用Node Schedule创建定时任务,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。nodejs的后

这篇文章主要介绍了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项目中如何使用Node Schedule创建定时任务”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网JavaScript频道,更多相关知识等着你来学习!

--结束END--

本文标题: node项目中如何使用Node Schedule创建定时任务

本文链接: https://www.lsjlt.com/news/86622.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • node项目中如何使用Node Schedule创建定时任务
    这篇文章主要介绍了node项目中如何使用Node Schedule创建定时任务,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。nodejs的后...
    99+
    2022-10-19
  • Node.js定时任务之node-schedule使用详解
    目录Node.js node-schedule使用安装使用开启定时任务取消定时任务node-schedule定时只执行一次任务以下,是官方npm的示例中文解释Node.js node...
    99+
    2022-11-13
    Node.js定时任务 node-schedule使用 Node.js使用node-schedule
  • node.js中使用node-schedule实现定时任务实例
    有的时候需要根据业务需要,晚上凌晨以后执行某些操作的时候,这个可能会有所帮助,我最近正在研究这个,欢迎共同探讨。 github地址:https://github.com/mattpat/node-sched...
    99+
    2022-06-04
    实例 node js
  • Python中schedule模块的定时任务如何使用
    这篇文章主要介绍“Python中schedule模块的定时任务如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中schedule模块的定时任务如何使用”文章能帮助大家解决问题。1 ...
    99+
    2023-06-30
  • linux中怎么使用crontab创建定时任务
    这篇文章将为大家详细讲解有关linux中怎么使用crontab创建定时任务,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux下可以利用crontab创建定时任务。常用搭配crontab -e 编辑任...
    99+
    2023-06-09
  • 定时任务如何在Spring Boot 项目中实现
    定时任务如何在Spring Boot 项目中实现?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。创建定时服务一般来说定时服务会写在一个Component里,方便管理。对于定时任务...
    99+
    2023-05-31
    springboot boot 定时任务
  • 如何在PHP项目中实现定时任务和计划任务?
    如何在PHP项目中实现定时任务和计划任务?在开发一个PHP项目时,有时候需要执行一些定时任务或者计划任务。这些任务可能包括发送邮件、清理临时文件、生成报表等等。本文将介绍如何使用PHP来实现这些定时任务和计划任务。使用Crontab定时器C...
    99+
    2023-11-03
    PHP定时任务 PHP计划任务 项目中实现
  • 在springboot项目中使用quartz如何实现一个定时任务
    今天就跟大家聊聊有关在springboot项目中使用quartz如何实现一个定时任务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。spring支持多种定时任务的实现。我们来介绍下使用...
    99+
    2023-05-31
    springboot art quartz
  • node项目中如何使用express来处理文件的上传
    怎么处理文件上传?下面本篇文章给大家介绍一下node项目中如何使用express来处理文件的上传,希望对大家有所帮助!上传单个文件我们可以使用 express 官方出品的第三方中间件 multer 来处理,先是安装:npm i multer...
    99+
    2023-05-14
    node nodejs Express 文件上传
  • Linux中使用crond工具创建定时任务的方法
    前言 crond是一个linux下的定时执行工具(相当于windows下的scheduled task),可以在无需人工干预的情况下定时地运行任务。crond工具提供crontab命令来设置定时任务,属于守护进程,...
    99+
    2022-06-04
    linux 创建定时任务 linux crond工具
  • 定时器如何在Java项目中使用
    这篇文章将为大家详细讲解有关定时器如何在Java项目中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Timer类是用来执行任务的类,它接受一个TimerTask做参数 ,这两个类使用起来...
    99+
    2023-05-31
    java ava
  • 如何利用Linux中的crontab实现分布式项目定时任务功能
    小编给大家分享一下如何利用Linux中的crontab实现分布式项目定时任务功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!认识crond服务 &nb...
    99+
    2023-06-09
  • 在java项目中如何使用Timer定时器
    在java项目中如何使用Timer定时器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。定时的功能我们在手机上见得比较多,比如定时清理垃圾,闹钟,等等.定时功能在...
    99+
    2023-05-31
    java 定时器 timer
  • 定时任务如何在Spring Boot中使用
    本篇文章给大家分享的是有关定时任务如何在Spring Boot中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Spring Boot中配置定时任务import org.sp...
    99+
    2023-05-31
    springboot 定时任务
  • 如何在PHP中使用定时任务函数
    PHP是一种非常流行的服务器端编程语言,它可以帮助我们开发高效、动态的Web应用程序。在编写Web应用程序时,我们经常需要执行一些定时任务,比如定期清理数据,自动发送邮件等等。 实现这些定时任务的一种方法是使用PHP的定时任务函数。在本文中...
    99+
    2023-05-19
    函数 PHP 定时任务
  • 线程池与定时任务如何在Spring中使用
    这篇文章将为大家详细讲解有关线程池与定时任务如何在Spring中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.功能介绍Spring框架提供了线程池和定时任务执行的抽象接口:TaskE...
    99+
    2023-05-31
    spring 线程池
  • 如何在thinkphp中使用windows计划任务定时执行php文件
    实现思路如下: 通过win的“任务”功能来定时执行一个bat文件,bat文件会调用php.exe文件,php.exe可以传递参数指定执行哪个类和方法 方法如下: 一,thinkphp...
    99+
    2022-11-12
  • 如何使用Linux中用于配合管理定时任务的atrm与batch命令
    本篇内容介绍了“如何使用Linux中用于配合管理定时任务的atrm与batch命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!atrm删除...
    99+
    2023-06-12
  • 在Linux中如何使用at和crontab命令在指定时间计划任务服务程序
    这篇文章的内容主要围绕在Linux中如何使用at和crontab命令在指定时间计划任务服务程序进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!经验丰富...
    99+
    2023-06-28
  • 如何使用golang中的io/ioutil.TempDir函数创建带有指定前缀和后缀的临时文件夹
    如何使用golang中的io/ioutil.TempDir函数创建带有指定前缀和后缀的临时文件夹,需要具体代码示例在Go语言的开发中,有时候我们需要创建用于临时存储文件的文件夹,这些文件夹往往是临时的,使用完毕后需要删除。Go语言的标准库中...
    99+
    2023-11-18
    Golang io/ioutil TempDir
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作