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


Posted in Javascript onApril 28, 2020

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模块的使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
用JavaScript对JSON进行模式匹配(Part 1-设计)
Jul 17 Javascript
jquery中的过滤操作详细解析
Dec 02 Javascript
jQuery文件上传插件Uploadify使用指南
Jun 05 Javascript
json字符串之间的相互转换示例代码
Aug 21 Javascript
浅谈Javascript中substr和substring的区别
Sep 30 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
Jan 05 Javascript
AngularJS 防止页面闪烁的方法
Mar 09 Javascript
vue 点击按钮增加一行的方法
Sep 07 Javascript
vue-cli3添加模式配置多环境变量的方法
Jun 05 Javascript
微信小程序 腾讯地图SDK 获取当前地址实现解析
Aug 12 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
Sep 23 Javascript
详解react组件通讯方式(多种)
May 06 Javascript
JavaScript Date对象功能与用法学习记录
Apr 28 #Javascript
JavaScript 链表定义与使用方法示例
Apr 28 #Javascript
Vue 3.0 全家桶抢先体验
Apr 28 #Javascript
React生命周期原理与用法踩坑笔记
Apr 28 #Javascript
js最全的数组的降维5种办法(小结)
Apr 28 #Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
Apr 28 #Javascript
React中Ref 的使用方法详解
Apr 28 #Javascript
You might like
使用VisualStudio开发php的图文设置方法
2010/08/21 PHP
PHP flush()与ob_flush()的区别详解
2013/06/03 PHP
php从完整文件路径中分离文件目录和文件名的方法
2015/03/13 PHP
php实现编辑和保存文件的方法
2015/07/20 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
2017/01/16 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
PHP PDOStatement::setFetchMode讲解
2019/02/03 PHP
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
js TextArea的选中区域处理
2010/12/28 Javascript
js编码之encodeURIComponent使用介绍(asp,php)
2012/03/01 Javascript
js获取TreeView控件选中节点的Text和Value值的方法
2012/11/24 Javascript
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
jquery及原生js获取select下拉框选中的值示例
2013/10/25 Javascript
JavaScript中的正则表达式简明总结
2014/04/04 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
2016/03/25 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
2016/06/08 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
2020/02/17 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
在Python中使用模块的教程
2015/04/27 Python
Python判断某个用户对某个文件的权限
2016/10/13 Python
python如何发布自已pip项目的方法步骤
2018/10/09 Python
浅谈Python反射 & 单例模式
2019/03/21 Python
django之状态保持-使用redis存储session的例子
2019/07/28 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
办公室主任职责范文
2013/11/08 职场文书
合作意向书
2014/07/30 职场文书
实习生工作证明范本
2014/09/14 职场文书
财务负责人岗位职责
2015/02/03 职场文书
企业法人代表证明书
2015/06/18 职场文书
同事离别感言
2015/08/04 职场文书
幼师必备:幼儿园期末教师评语50条
2019/11/01 职场文书
Python中的套接字编程是什么?
2021/06/21 Python