最近做项目碰到需要定时去请求某个接口,定时清空数据等一些需要定时执行某些任务的需求,js的setInterval也可以实现这个功能,可是两者之间也存在一些区别;
node-schedule 可以精确地设置年月日时间来执行这个任务;
setInterval是设置每隔多少时间之后执行特定任务;
安装
可以使用npm进行安装。
npm install node-schedule
工作和计划
节点计划中的每个计划作业均由一个Job
对象表示。您可以手动创建作业,然后执行该schedule()
方法以应用时间表,或使用便捷功能scheduleJob()
,如下所示。
Job
对象是EventEmitter
,并发出以下事件:
(scheduled
和canceled
事件均接收JavaScript日期对象作为参数)。
请注意,作业是第一时间安排的,因此,如果使用scheduleJob()
便捷方法创建作业,则会错过第一个scheduled
事件,但是您可以手动查询调用(请参见下文)。
Cron式日程安排
cron格式包括:
* * * * * *
┬ ┬ ┬ ┬ ┬ ┬
│ │ │ │ │ │
│ │ │ │ │ └ day of week (0 - 7) (0 or 7 is Sun)
│ │ │ │ └───── month (1 - 12)
│ │ │ └────────── day of month (1 - 31)
│ │ └─────────────── hour (0 - 23)
│ └──────────────────── minute (0 - 59)
└───────────────────────── second (0 - 59, OPTIONAL)
cron格式的示例1:
//当分钟为42时,执行cron作业。
const schedule = require ('node-schedule' );
const job =schedule.scheduleJob ('42 * * * *” , function(){ console.log('答案生命,宇宙以及一切'! ); } );
示例2:
// 当前时间的秒值为 10 时执行任务,如:2018-7-8 13:25:10 let job = schedule.scheduleJob('10 * * * * *', () => { console.log(new Date()); });
示例3
// 每隔一段时间执行任务 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()); });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。