Node.js设置定时任务之node-schedule模块的使用详解

 更新时间:2020年04月28日 10:29:14   作者:KASON  
node-schedule是 Node.js 的一个定时任务(crontab)模块。这篇文章主要介绍了Node.js设置定时任务之node-schedule模块的使用,需要的朋友可以参考下

node-schedule是 Node.js 的一个定时任务(crontab)模块。我们可以使用定时任务来对服务器系统进行维护,让其在固定的时间段执行某些必要的操作,还可以使用定时任务发送邮件、爬取数据等;

一、安装

npm install node-schedule
# 或
yarn add node-schedule

二、基础用法

使用schedule.scheduleJob()即可创建一个定时任务,一个简单的上手示例:

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

// 当前时间的秒值为 10 时执行任务,如:2018-7-8 13:25:10
let job = schedule.scheduleJob('10 * * * * *', () => {
 console.log(new Date());
});

如何运行示例?(首先确保安装了 Node.js)

1、新建一个 *.js 文件,如:test.js,粘贴示例代码;

2、终端(或命令行)cd到当前文件的所在目录;

3、终端执行node test.js即可执行代码;

4、console会在终端界面直接输出内容;

5、Ctrl + C可退出执行;

时间数值按下表表示

*  *  *  *  *  *
┬  ┬  ┬  ┬  ┬  ┬
│  │  │  │  │  |
│  │  │  │  │  └ 星期几,取值:0 - 7,其中 0 和 7 都表示是周日
│  │  │  │  └─── 月份,取值:1 - 12
│  │  │  └────── 日期,取值:1 - 31
│  │  └───────── 时,取值:0 - 23
│  └──────────── 分,取值:0 - 59
└─────────────── 秒,取值:0 - 59(可选)

也可以指定一个具体的时间,如:

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

// 定义一个未来的时间
let date = new Date(2016, 6, 13, 15, 50, 0);

// 定义一个任务
let job = schedule.scheduleJob(date, () => {
 console.log(new Date());
});

三、进阶用法

除了基础的用法,我们还可以使用一些更为灵活的方法来实现定时任务。

3.1、隔一段时间执行一次

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

// 定义规则
let rule = new schedule.RecurrenceRule();
rule.second = [0, 10, 20, 30, 40, 50]; // 每隔 10 秒执行一次

// 启动任务
let job = schedule.scheduleJob(rule, () => {
 console.log(new Date());
});

rule支持设置的值有secondminutehourdatedayOfWeekmonthyear等。一些厂家的用法,如:

每秒执行

rule.second = [0,1,2,3......59];

每分钟 0 秒执行

rule.second = 0;

每小时 30 分执行

rule.minute = 30;
rule.second = 0;

每天 0 点执行

rule.hour =0;
rule.minute =0;
rule.second =0;

每月 1 号的 10 点执行

rule.date = 1;
rule.hour = 10;
rule.minute = 0;
rule.second = 0;

每周一、周三、周五的 0 点和 12 点执行

rule.dayOfWeek = [1,3,5];
rule.hour = [0,12];
rule.minute = 0;
rule.second = 0;

四、取消任务

可以使用cancel()终止一个运行中的任务。

job.cancel();

到此这篇关于Node.js设置定时任务:node-schedule模块的使用的文章就介绍到这了,更多相关Node.js设置定时任务:node-schedule模块的使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 防止Node.js中错误导致进程阻塞的办法

    防止Node.js中错误导致进程阻塞的办法

    Node.js我们用到非常的多了,如果我们开发不当可能因错误导致进程阻塞问题,对于进程阻塞问题一直是个头痛的事情,今天我们一起来看一篇关于Node.js防止错误导致的进程阻塞示例,下面一起来看看。
    2016-08-08
  • 基于NodeJS的前后端分离的思考与实践(二)模版探索

    基于NodeJS的前后端分离的思考与实践(二)模版探索

    在传统的开发模式中,浏览器端与服务器端是由不同的前后端两个团队开发,但是模版却又在这两者中间的模糊地带。因此模版上面总不可避免的越来越多复杂逻辑,最终难以维护。
    2014-09-09
  • NodeJs项目中关闭ESLint的方法

    NodeJs项目中关闭ESLint的方法

    ESLint是一个用来识别 ECMAScript 并且按照规则给出报告的代码检测工具,使用它可以避免低级错误和统一代码的风格。这篇文章主要介绍了NodeJs项目中关闭ESLint的方法,需要的朋友可以参考下
    2018-08-08
  • Node.js安装、环境变量配置、报错解决方法

    Node.js安装、环境变量配置、报错解决方法

    Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台,这篇文章主要介绍了Node.js安装、环境变量配置、报错解决方法,需要的朋友可以参考下
    2022-06-06
  • 用nodejs搭建websocket服务器

    用nodejs搭建websocket服务器

    这篇文章主要介绍了用nodejs搭建websocket服务器,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • 探索node之事件循环的实现

    探索node之事件循环的实现

    这篇文章主要介绍了探索node之事件循环的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • node-sass安装失败的原因与解决方法

    node-sass安装失败的原因与解决方法

    这篇文章主要给大家介绍了关于node-sass安装失败的原因与解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-09-09
  • webpack配置文件和常用配置项介绍

    webpack配置文件和常用配置项介绍

    本篇文章主要介绍了webpack配置文件和常用配置项的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • 浅谈Koa服务限流方法实践

    浅谈Koa服务限流方法实践

    本篇文章主要介绍了浅谈Koa服务限流方法实践,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Nodejs脚本实现批量修改文件

    Nodejs脚本实现批量修改文件

    当我们想要更改一下所有的文件,如何可以在修改到这些文件的同时又能实现节省时间呢,通过这篇文章我们将来学习一下怎么通过这个脚本来实现这个功能,希望对大家有所帮助
    2023-11-11

最新评论