定时任务作用
简单来说,就是能在指定时间启动的脚本逻辑。
一般用于:
- CI:例如静态构建
- 异步任务:例如订单超时、邮件检查
- 清理/检查数据:例如分布式事务失败,定时检查发现异常,回滚数据
Node 启动定时任务
1、安装依赖
1 | npm install node-cron execa |
node-cron.js 支持 cron 语法,并且支持精确到 second(秒级),会定时启动任务。
execa.js 执行 shell 命令
pm2 用来启动 node.js 守护进程,防止 shell 关闭,定时任务脚本挂掉。
2、编写定时任务代码
假设具体路逻辑写在了 cronjob.sh 中(也可以写在其他的 js 文件中),并且每天的 23:30 会执行。
那么代码如下:
1 | // cronjob.js |
3、pm2 开启进程
1 | pm2 start cronjob.js |