我使用pm2来定义需要定期运行的各种作业。这是一个例子:
{
"name": "recalc-score",
"script": "dist/jobs/recalc-score.js",
"cron_restart": "5 0 * * *",
"env": {
"NODE_ENV": "production"
}
},
任务在不到一秒的时间内完成,但是如果我调用ps aux
或pm2 monit
,我会看到pm2正在为每个任务保持一个进程。每个消耗40 + MB的RAM。
有没有办法避免这种行为?我真的很喜欢通过更新ecosystem.json
来轻松在服务器上创建新作业所以我真的很想坚持使用pm2,但为每天运行一次的任务牺牲了大量的RAM感觉不理想。
答案 0 :(得分:0)
好的,这个问题似乎有点受阻:https://github.com/Unitech/pm2/issues/2487
但是这里的解决方案效果很好。我创建了一个运行node-schedule的worker.js
脚本。在这里,我定义了所有cron任务。这只需要一个过程。