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 相关文章推荐
[原创]提供复制本站内容时出现,该文章转自脚本之家等字样的js代码
Mar 27 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
Mar 18 Javascript
jQuery中has()方法用法实例
Jan 06 Javascript
浅谈JavaScript Math和Number对象
Jan 26 Javascript
详解原生JavaScript实现jQuery中AJAX处理的方法
May 10 Javascript
JS取模、取商及取整运算方法示例
Oct 13 Javascript
jQuery ajaxForm()的应用
Oct 14 Javascript
详解mpvue开发小程序小总结
Jul 25 Javascript
Node.js log4js日志管理详解
Jul 31 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
Aug 12 Javascript
js实现适配移动端的拖动效果
Jan 13 Javascript
在vue中通过render函数给子组件设置ref操作
Nov 17 Vue.js
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
Terran魔法科技
2020/03/14 星际争霸
php5 apache 2.2 webservice 创建与配置(java)
2011/01/27 PHP
PHP大批量数据操作时临时调整内存与执行时间的方法
2011/04/20 PHP
纯PHP代码实现支付宝批量付款
2015/12/24 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
JavaScript游戏之是男人就下100层代码打包
2010/11/08 Javascript
jQuery学习总结之元素的相对定位和选择器(持续更新)
2011/04/26 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
2013/11/12 Javascript
jQuery学习总结之jQuery事件
2014/06/30 Javascript
浅析jquery与checkbox的checked属性的问题
2016/04/27 Javascript
总结几道关于Node.js的面试问题
2017/01/11 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
angularjs实现猜数字大小功能
2020/05/20 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
Vue下拉框回显并默认选中随机问题
2018/09/06 Javascript
Layui事件监听的实现(表单和数据表格)
2019/10/17 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
Vue中inheritAttrs的使用实例详解
2020/12/31 Vue.js
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
Python实现控制台中的进度条功能代码
2017/12/22 Python
python中的常量和变量代码详解
2018/07/25 Python
python实现WebSocket服务端过程解析
2019/10/18 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
keras输出预测值和真实值方式
2020/06/27 Python
Pycharm github配置实现过程图解
2020/10/13 Python
简历的自荐信
2013/12/19 职场文书
给同事的道歉信
2014/01/11 职场文书
颁奖晚会主持词
2014/03/25 职场文书
校长寄语大全
2014/04/09 职场文书
电钳工人个人求职信
2014/05/10 职场文书
公司担保书范文
2014/05/21 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
世界遗产的导游词
2015/02/13 职场文书
自荐信范文
2019/05/20 职场文书
2019年聘任书的写作格式及范文!
2019/07/03 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书