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 相关文章推荐
Dojo之路:如何利用Dojo实现Drag and Drop效果
Apr 10 Javascript
javascript 鼠标拖动图标技术
Feb 07 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
Mar 25 Javascript
JQuery给元素添加/删除节点比如select
Apr 02 Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
Sep 09 Javascript
javascript实现控制浏览器全屏
Mar 30 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
Nov 07 Javascript
JQuery.validate在ie8下不支持的快速解决方法
May 18 Javascript
COM组件中调用JavaScript函数详解及实例
Feb 23 Javascript
css配合JavaScript实现tab标签切换效果
Oct 11 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
Aug 27 Javascript
关于vue里页面的缓存详解
Nov 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和ACCESS写聊天室(七)
2006/10/09 PHP
Windows下的PHP5.0详解
2006/11/18 PHP
php批量删除数据
2007/01/18 PHP
php基础教程 php内置函数实例教程
2012/08/21 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
PHP魔术方法的使用示例
2015/06/23 PHP
学习php设计模式 php实现状态模式
2015/12/07 PHP
ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例
2020/02/07 PHP
Gambit vs CL BO3 第二场 2.13
2021/03/10 DOTA
Js 获取HTML DOM节点元素的方法小结
2009/04/24 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
seajs中模块的解析规则详解和模块使用总结
2014/03/12 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
2015/11/30 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
详解JavaScript中的事件流和事件处理程序
2016/05/20 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
JS实现二维数组横纵列转置的方法
2018/04/17 Javascript
通过js给网页加上水印背景实例
2019/06/17 Javascript
使用zrender.js绘制体温单效果
2019/10/31 Javascript
JavaScript本地储存:localStorage、sessionStorage、cookie的使用
2020/10/13 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
2021/02/06 Javascript
Python星号*与**用法分析
2018/02/02 Python
Pycharm+Scrapy安装并且初始化项目的方法
2019/01/15 Python
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
瑞士香水购物网站:Parfumcity.ch
2017/01/14 全球购物
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
bonprix匈牙利:女士、男士和儿童服装
2019/07/19 全球购物
策划主管的工作职责
2013/11/24 职场文书
商务英语应届生自我鉴定
2013/12/08 职场文书
服装行业创业计划书范文
2014/02/05 职场文书
珍惜时间演讲稿
2014/05/14 职场文书
企业口号大全
2014/06/12 职场文书
经典哲理警句:志不真则心不热,心不热则功不贤
2019/11/14 职场文书
python使用shell脚本创建kafka连接器
2022/04/29 Python