Node.js 中使用 node-cron 进行定时任务管理的完整教程

· 约 5 分钟读完

在 Node.js 开发中,经常需要执行一些定时任务,例如定时备份、定时爬取数据等。而 node-cron 是一个非常方便易用的定时任务管理模块,支持 cron 表达式和时间间隔两种方式设置定时任务触发时间。本文将详细介绍如何使用 node-cron 实现定时任务管理。

1. 安装和引入 node-cron

通过 npm 安装 node-cron:

在项目中引入 node-cron:

2. 使用 cron 表达式

2.1 cron 表达式格式

cron 表达式是一种时间表达式,用于表示定时任务的触发时间。cron 表达式由 6 个字段组成,分别对应秒、分、时、日、月、星期。每个字段可以是一个数字、一个范围、一个列表或者一个通配符。

字段 允许值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
时 0-23 , - * /
日 1-31 , - * ? / L W
月 1-12 , - * /
星期 0-6 , - * ? / L #

cron 表达式示例:

2.2 设置定时任务

使用 cron.schedule() 方法设置定时任务。此方法接收一个 cron 表达式和一个回调函数,回调函数将在定时任务对应的时间触发。例如:

上述代码表示每天 12 点执行一次,输出 "定时任务执行成功!"。

3. 使用时间间隔

除了使用 cron 表达式,node-cron 还支持使用时间间隔来设置定时任务。例如:

上述代码表示每 5 秒执行一次,输出 "每 5 秒执行一次!"。

4. 更多参数

cron.schedule() 方法还支持其他参数,如:

  • timezone:设置时区,默认为系统默认时区。
  • scheduled:是否启用定时任务,默认为 true。
  • task:与回调函数相同,用于指定回调任务。

例如:

上述代码表示每天 12 点执行一次,时区为 Asia/Shanghai,不启用定时任务,同时还指定了一个额外的回调任务,输出 "这是另一个回调任务!"。

5. 错误处理

如果出现了错误,node-cron 会自动捕获并打印错误信息。除此之外,还可以通过监听 error 事件来处理错误,例如:

上述代码表示每分钟执行一次,但会出现错误。当错误发生时,将输出 "定时任务出现了错误:"加上错误信息。

6. 示例代码

下面是一个完整的示例代码,展示了如何使用 node-cron 执行定时任务:

上述代码表示:

  • 每天 12 点执行一次,但不启用定时任务,还指定了一个额外的回调任务。
  • 每 5 秒执行一次。
  • 每分钟执行一次,但会出现错误,并捕获错误信息。

通过以上实例,我们可以轻松学习 node-cron 的使用并在开发中应用此模块来进行定时任务的管理。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67cfb918e46428fe9eb99c9e