【发布时间】:2011-12-28 14:00:03
【问题描述】:
所以,我需要在 heroku 上运行我的 node.js 应用程序,它运行良好,但是当我的应用程序崩溃时,我需要一些东西来重新启动它,所以我将永远添加到 package.json,并创建了一个名为永远的文件.js 与此:
var forever = require('forever');
var child = new (forever.Monitor)('web.js', {
max: 3,
silent: false,
options: []
});
//child.on('exit', this.callback);
child.start();
forever.startServer(child);
在我的 Procfile(heroku 用来知道从什么开始)我输入:
web: node forever.js
好吧!现在每次我的应用程序崩溃时它都会自动重启,但是,有时(几乎每 1 小时),heroku 开始抛出 H99 - 平台错误,关于这个错误,他们说:
与所有其他需要您采取行动才能纠正的错误不同,此错误不需要您采取行动。请稍后再试,或查看状态网站。
但我只是手动重新启动我的应用程序,错误就会消失,如果我不这样做,它可能需要几个小时才能自行消失。
有人可以帮我吗?也许这是一个永远的问题? Heroku 问题?
【问题讨论】:
-
你有没有明白是什么原因?
-
不,但我永远删除了,它不需要 heroku,你应该避免错误,这样你的应用程序才能继续运行
-
那么 heroku 现在崩溃时会自动重启你的应用吗?
-
根据我对 heroku 的理解,进程应该重新启动。
-
来自他们的文档 (devcenter.heroku.com/articles/ps#process-restarts):在正常情况下,长时间运行的 Web 或工作进程偶尔会崩溃,它将立即重新启动,而无需您的任何干预。如果你的进程连续两次崩溃,它会在系统重试前停留十分钟。