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编码、解码函数介绍及其使用示例
Sep 05 Javascript
JS获取select-option-text_value的方法
Dec 26 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
Jan 06 Javascript
Javascript通过overflow控制列表闭合与展开的方法
May 15 Javascript
jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
Aug 25 Javascript
初识angular框架后的所思所想
Feb 19 Javascript
利用Node.JS实现邮件发送功能
Oct 21 Javascript
JS 实现导航菜单中的二级下拉菜单的几种方式
Oct 31 Javascript
js Canvas实现的日历时钟案例分享
Dec 25 Javascript
无法获取隐藏元素宽度和高度的解决方案
Mar 07 Javascript
使用Fullpage插件快速开发整屏翻页的页面
Sep 13 Javascript
vue新vue-cli3环境配置和模拟json数据的实例
Sep 19 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
Windows下的PHP5.0详解
2006/11/18 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
2013/08/07 PHP
php异常处理使用示例
2014/02/25 PHP
PHP自定义错误处理的方法分析
2018/12/19 PHP
一个javascript参数的小问题
2008/03/02 Javascript
jquery animate图片模向滑动示例代码
2011/01/26 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
2012/07/17 Javascript
Jquery 复选框取值兼容FF和IE8(测试有效)
2013/10/29 Javascript
动态的绑定事件addEventListener方法的使用
2014/01/24 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
2016/03/25 Javascript
JS正则表达式判断有效数实例代码
2017/03/13 Javascript
JavaScript实现省市县三级级联特效
2017/05/16 Javascript
NodeJs中express框架的send()方法简介
2017/06/20 NodeJs
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
浅谈vue项目可以从哪些方面进行优化
2018/05/05 Javascript
vue项目中jsonp跨域获取qq音乐首页推荐问题
2018/05/30 Javascript
IDEA安装vue插件图文详解
2019/09/26 Javascript
vue.config.js常用配置详解
2019/11/14 Javascript
Vue组件跨层级获取组件操作
2020/07/27 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
[02:27]《DAC最前线》之附加赛征程
2015/01/29 DOTA
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
NFL欧洲商店(德国):NFL Europe Shop DE
2018/11/03 全球购物
EJB2和EJB3在架构上的不同点
2014/09/29 面试题
数据员岗位职责
2013/11/19 职场文书
小学生防溺水广播稿
2014/01/12 职场文书
销售助理岗位职责
2014/02/21 职场文书
2014年综治宣传月活动总结
2014/04/28 职场文书
节约用水演讲稿
2014/05/21 职场文书
中国梦演讲稿3分钟
2014/08/19 职场文书
赵氏孤儿观后感
2015/06/09 职场文书
根德5570型九灯四波段立体声收音机是电子管收音机的楷模 ? 再论5570
2022/04/05 无线电