文章目录加载中

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