什么是 cron?
cron 是一个在 Unix/Linux 系统下的时间调度工具,它可以让我们在特定的时间点或者时间间隔执行指定的任务。一般来说,我们可以通过 cron 表达式来定义任务的执行时间,这个表达式包含了分钟、小时、日期、月份和星期几等字段。
npm 包 cron
npm 包 cron 是一个基于 JavaScript 的 cron 调度库,它可以在 Node.js 环境下使用,并且提供了良好的 API 接口和文档说明,方便我们进行时间调度相关的开发工作。
安装
我们可以通过 npm 来安装 cron 包,具体方法如下:
npm install cron --save
快速入门
下面我们来演示一个简单的例子,该例子展示了如何使用 cron 包来实现每隔十秒钟输出一句话的功能。
const CronJob = require('cron').CronJob; new CronJob('*/10 * * * * *', function() { console.log('You will see this message every ten seconds'); }, null, true, 'America/Los_Angeles');
上述代码中,我们首先引入了 cron 包中的 CronJob 类,然后我们创建了一个新的 CronJob 实例,并传入了一个 cron 表达式 '*/10 * * * * *'
和一个回调函数。这个 cron 表达式表示“每隔十秒钟执行一次”,而回调函数则用来输出一句话 You will see this message every ten seconds
。最后我们启动了这个 CronJob 并且指定了时区为 America/Los_Angeles
。
常用 API
CronJob
CronJob 是 cron 包中最重要的类,它可以帮助我们创建一个新的时间任务,并在特定的时间点或时间间隔内执行指定的回调函数。以下是 CronJob 的构造函数签名和常用参数说明:
new CronJob(cronTime, onTick, onComplete, start, timeZone, context, runOnInit)
参数说明:
cronTime
:定义了任务执行的时间表达式,可以是字符串或者 Date 对象。onTick
:当任务到达指定时间点时,此回调函数将被调用。onComplete
:当任务完成时,此回调函数将被调用。start
:是否立即启动任务,默认为 false。timeZone
:设置任务执行的时区,默认为本地时区。context
:设置回调函数的上下文对象。runOnInit
:是否在任务启动时立即执行一次回调函数,默认为 false。
CronTime
CronTime 是 cron 包中表示时间表达式的类,它可以将时间表达式转换为实际的时间点。以下是 CronTime 的构造函数签名和常用方法说明:
new CronTime(cronTime, timeZone) // 返回下一个执行时间点 CronTime.prototype._getNextDate();
参数说明:
cronTime
:定义了任务执行的时间表达式,可以是字符串或者 Date 对象。timeZone
:设置任务执行的时区,默认为本地时区。
时间表达式
cron 包支持常用的 cron 表达式格式,例如:
* * * * * *
:每秒钟执行一次。0 0 * * * *
:每小时零分整点执行一次。0 0 */2 * * *
:每隔两小时零分整点执行一次。0 30 8,12,16 * * *
:每天的 8 点半、12 点半和 16 点半各执行一次。0 0 1-7 * * *
:每个月的前七天的零分整点各执行一次。
更多时间表达式的
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/54210