我的快递服务器看起来像这样:
//server.js
var app = express();
var server = app.listen(3000, ...
// this is further wrapped in main.js
var forever = require('forever-monitor');
var child = new (forever.Monitor)('server/server.js', {
max: 30000,
silent: false,
args: []
});
child.start();
当我部署到heroku时,我目前执行main.js
//package.json
"scripts": {
"start": "node server/main.js"
},
到目前为止一直很好...... heroku永远开始,从我的快递服务器开始......
但是我不相信我会在所有内核上运行快速服务器。
理想情况下,我想做一些事情pm2来启动我的快递服务器。 我怎样才能做到这一点?
答案 0 :(得分:2)
在将代码部署到Heroku时,您不希望使用像pm2这样的进程监视器或永远 - 这是因为Heroku的dyno网格将自动检测应用程序崩溃并处理重新启动进程。这是一种更可靠的处理方式,因为您还可以在日志中获得有用的Heroku调试信息。
注意:我在您的示例中也注意到您正在侦听端口3000上的连接 - 您可能不希望在Heroku上执行此操作,因为他们分配给您一个随机收听的端口。你应该说app.listen(process.env.PORT);
。