当我的服务器因任何原因崩溃时,如何收到警告? HopToad或任何其他服务是否可以做到这一点?
由于
编辑:
我正在使用Heroku for node.js.哪个不允许我运行其他任何东西。我需要从内到外监视我的代码,而不需要运行任何其他进程。
由于
答案 0 :(得分:9)
您可以尝试在node.js程序中处理uncaughtException事件并在那里“警告我”。或者,您可以使用uptime robot之类的服务来监控您的应用是否正在侦听指定的端口。
答案 1 :(得分:2)
实际上有很多选择!
在我看来,monit,forever和supervisord是那些突然出现在人群中的人。
因为@ rob-cowie已经回答过主管,所以在这里你会得到一些关于'forever'和'monit'的指针。
Monit是管理机器上服务的整体解决方案 - 在崩溃或占用太多资源时通知您并重新启动它们。
我还没有找到一个很好的理由来使用supervisord而不是monit,但是在supervisord邮件列表中我看到了使用monit来监控supervisord的建议!
答案 2 :(得分:1)
一种方法是定期检查您是否可以成功访问您正在投放的网页,请参阅http://wasitup.com/。
另一种方法是监控计算机上的服务器进程。一个好方法是使用Supervisord启动node.js。它可以重新启动崩溃的进程并通过电子邮件发送给您。 intarwebs周围有很多例子,包括deployment example1
答案 3 :(得分:1)
我刚刚组建了一个监听未处理异常的类,当它看到它的时候:
这需要对你的应用程序进行一些调整,因为我还没有把它变成通用的,但它只是几行,它可能就是你正在寻找的东西!
它从你的应用程序内部运行,不需要包含任何其他文件(如果你想要邮件通知,则不包括nodemailer.js。)
答案 4 :(得分:0)
如果你仍然在heroku上使用node.js,那么也值得一看Nodejitsu。它对节点有很大的支持并且可以永久运行,如果您的应用程序崩溃循环和其他事情,则会收到电子邮非常方便。
另外,就处理uncaughtException
而言,我会避免这种情况,从经验来看它是不稳定的,并且在最新的node.js api文档中也注意到它不可靠和不稳定。见http://nodejs.org/api/process.html#process_event_uncaughtexception
使用类似forever的内容!