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 相关文章推荐
Node.js与PHP、Python的字符处理性能对比
Jul 06 Javascript
Javascript模仿淘宝信用评价实例(附源码)
Nov 26 Javascript
使用Angular缓存父页面数据的方法
Jan 03 Javascript
完美解决axios跨域请求出错的问题
Feb 05 Javascript
JavaScript设计模式之工厂模式简单实例教程
Jul 03 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
Dec 13 Javascript
利用Promise自定义一个GET请求的函数示例代码
Mar 20 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
Apr 11 Javascript
jquery操作select常见方法大全【7种情况】
May 28 jQuery
layui实现下拉框三级联动
Jul 26 Javascript
如何在Vue.JS中使用图标组件
Aug 04 Javascript
解决vue自定义指令导致的内存泄漏问题
Aug 04 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
隐藏你的.php文件的实现方法
2007/03/19 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
2015/04/03 PHP
php实现中文转数字
2016/02/18 PHP
PHP6新特性分析
2016/03/03 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
javascript将数组插入到另一个数组中的代码
2013/01/10 Javascript
用Javascript来生成ftp脚本的小例子
2013/07/03 Javascript
jQuery修改CSS伪元素属性的方法
2014/07/30 Javascript
jQuery scrollFix滚动定位插件
2015/04/01 Javascript
Node.js模块封装及使用方法
2016/03/06 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
JavaScript正则表达式小结(test|match|search|replace|split|exec)
2016/12/08 Javascript
使用travis-ci如何持续部署node.js应用详解
2017/07/30 Javascript
Vue组件通信的四种方式汇总
2018/02/08 Javascript
jquery实现弹窗(系统提示框)效果
2019/12/10 jQuery
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
vue-路由精讲 二级路由和三级路由的作用
2020/08/06 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
微信小程序canvas实现签名功能
2021/01/19 Javascript
在Python中使用HTMLParser解析HTML的教程
2015/04/29 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
Centos7 下安装最新的python3.8
2019/10/28 Python
python实现电子词典
2020/03/03 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
python绘图模块之利用turtle画图
2021/02/12 Python
详解CSS3 弹性布局快速入门
2019/06/06 HTML / CSS
html5实现九宫格抽奖可固定抽中某项奖品
2020/06/15 HTML / CSS
森海塞尔美国官网:Sennheiser耳机与耳麦
2017/07/19 全球购物
Happy Plugs官网:瑞典无线耳机品牌
2020/07/16 全球购物
总经理助理岗位职责
2013/11/08 职场文书
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
大学生预备党员自我评价
2015/03/04 职场文书
个人更名证明
2015/06/23 职场文书