Node.js设置定时任务之node-schedule模块的使用详解
node-schedule是Node.js的一个定时任务(crontab)模块。我们可以使用定时任务来对服务器系统进行维护,让其在固定的时间段执行某些必要的操作,还可以使用定时任务发送邮件、爬取数据等;
一、安装
npminstallnode-schedule #或 yarnaddnode-schedule
二、基础用法
使用schedule.scheduleJob()即可创建一个定时任务,一个简单的上手示例:
constschedule=require('node-schedule'); //当前时间的秒值为10时执行任务,如:2018-7-813:25:10 letjob=schedule.scheduleJob('10*****',()=>{ console.log(newDate()); });
如何运行示例?(首先确保安装了Node.js)
1、新建一个*.js文件,如:test.js,粘贴示例代码;
2、终端(或命令行)cd到当前文件的所在目录;
3、终端执行nodetest.js即可执行代码;
4、console会在终端界面直接输出内容;
5、Ctrl+C可退出执行;
时间数值按下表表示
* * * * * *
┬ ┬ ┬ ┬ ┬ ┬
│ │ │ │ │ |
│ │ │ │ │ └星期几,取值:0-7,其中0和7都表示是周日
│ │ │ │ └───月份,取值:1-12
│ │ │ └──────日期,取值:1-31
│ │ └─────────时,取值:0-23
│ └────────────分,取值:0-59
└───────────────秒,取值:0-59(可选)
也可以指定一个具体的时间,如:
constschedule=require('node-schedule'); //定义一个未来的时间 letdate=newDate(2016,6,13,15,50,0); //定义一个任务 letjob=schedule.scheduleJob(date,()=>{ console.log(newDate()); });
三、进阶用法
除了基础的用法,我们还可以使用一些更为灵活的方法来实现定时任务。
3.1、隔一段时间执行一次
constschedule=require('node-schedule'); //定义规则 letrule=newschedule.RecurrenceRule(); rule.second=[0,10,20,30,40,50];//每隔10秒执行一次 //启动任务 letjob=schedule.scheduleJob(rule,()=>{ console.log(newDate()); });
rule支持设置的值有second、minute、hour、date、dayOfWeek、month、year等。一些厂家的用法,如:
每秒执行
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模块的使用内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!