问题描述
我在 Node.js 中有一个解析应用程序,它为来自 RabbitMQ 队列的大量作业提供服务。
每个工作日应该从 9:00 开始服务,到 18:00 停止。
像 node-schedule
这样的应用级解决方案在概念上并不合适,因为我需要在外部打开和关闭进程,从而保留队列。
所以,我最终选择了 Cron,它有以下选项卡:
0 9 * * 1-5 cd /var/www/foodmara/current && pm2 start parser >/dev/null 2>&1
0 18 * * 1-5 cd /var/www/foodmara/current && pm2 stop parser >/dev/null 2>&1
我已使用 >/dev/null 2>&1
克服“未安装 MTA,丢弃输出”错误。
当我检查 parser
进程 pm2 status
的状态时,我看到它没有启动,也没有停止:
pm2 status
┌─────┬────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├─────┼────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 127 │ parser │ default │ 1.0.0 │ fork │ 0 │ 0 │ 4 │ stopped │ 0% │ 0b │ root │ disabled │
在 syslog 中,我看到执行了 cron 命令:
tail -n 1000 /var/log/syslog | grep CRON
Feb 19 09:00:01 277152 CRON[8939]: (root) CMD (cd /var/www/myproject/current && pm2 start parser >/dev/null 2>&1)
Feb 19 09:17:01 277152 CRON[11595]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
应用程序日志中没有错误。
我可以通过这种方式使用来自 Cron 的 PM2 命令吗? 我还能在哪里检查,出了什么问题?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)