文章目录加载中
Node.js 定时任务:node-cron
# 定时任务作用
简单来说,就是能在指定时间启动的脚本逻辑。
一般用于:
- 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
本文来自心谭博客:xin-tan.com,经常更新web和算法的文章笔记,前往github查看目录归纳:github.com/dongyuanxin/blog