Node.js 定时任务:node-cron

Node.js 定时任务:node-cron

Tags
定时任务
CreatedTime
Aug 18, 2022 09:34 AM
Slug
2020-10-13-node-cron
UpdatedTime
Last updated August 18, 2022

定时任务作用

简单来说,就是能在指定时间启动的脚本逻辑。
一般用于:
  • CI:例如静态构建
  • 异步任务:例如订单超时、邮件检查
  • 清理/检查数据:例如分布式事务失败,定时检查发现异常,回滚数据

Node 启动定时任务

1、安装依赖

npm install node-cron execa npm install -g pm2
node-cron.js 支持 cron 语法,并且支持精确到 second(秒级),会定时启动任务。
execa.js 执行 shell 命令
pm2 用来启动 node.js 守护进程,防止 shell 关闭,定时任务脚本挂掉。

2、编写定时任务代码

假设具体路逻辑写在了 cronjob.sh 中(也可以写在其他的 js 文件中),并且每天的 23:30 会执行。
那么代码如下:
// cronjob.js const cron = require("node-cron"); const execa = require("execa"); const path = require("path"); cron.schedule("30 23 * * *", () => { execa(path.join(__dirname, "cronjob.sh")).stdout.pipe(process.stdout); });

3、pm2 开启进程

pm2 start cronjob.js

More