[eggjs/egg]egg.js pm2使用的配置是config.local下的配置

2024-03-29 543 views
8
打算在线上作部署的时候,使用pm2无限重启

根据官方例子使用了pm2,在跟目录下创建了server.js

// server.js
const egg = require('egg');

const workers = Number(process.argv[2] || require("os").cpus().length);
egg.startCluster({
  workers,
  baseDir: __dirname,
});

根据命令行启动 pm2 进程,发现一直重启,log 后发现是无法连接数据库,用的一直是本地的配置,后来在 config.local 修改为 prod 上的配置后 pm2 start 就运行成功了,是我操作不当吗,求解

回答

4

很显然是你 local 配置的数据库连不上呗,自己排查一下连接配置是否正确,跟 egg 没啥关系

6

主要是 pm2 start 使用的是local的配置,而不是prod的,这里应该是哪里没设置好吗,求教大佬

7

startCluster 传参漏了 env

如无非常必要,最好不要用 PM2 这种鸡肋,如果要用,请完整的看一遍 egg-scripts start 里面的源码,把里面对应的逻辑自行实现一遍。

6

哦哦哦原来是这样,感谢感谢

9

没仔细看到文档,可以了感谢感谢

9

遇到相同的问题,请问下楼主您是怎么解决的

9

const workers = Number(process.argv[2] || require('os').cpus().length); egg.startCluster({ workers, env: 'prod', port: '7001', baseDir: __dirname, });