【发布时间】:2014-05-08 00:04:20
【问题描述】:
我是一个新手,并试图弄清楚进程监控如何与 JXcore 一起工作。我看到了文档,但需要几个步骤才能使我的服务器应用程序启动多线程并正确监控。
提前致谢!
【问题讨论】:
标签: node.js monitoring jxcore
我是一个新手,并试图弄清楚进程监控如何与 JXcore 一起工作。我看到了文档,但需要几个步骤才能使我的服务器应用程序启动多线程并正确监控。
提前致谢!
【问题讨论】:
标签: node.js monitoring jxcore
我会尽力向你解释。做新手没有什么可耻的! :)
JXcore 为您提供两种类型的应用程序监控。
1) 其中之一是Process Monitor,这是一个进程,它作为单独的实例运行。您的应用程序可能会订阅它以进行监视。 Monitor 会定期验证它们,如果它发现您的应用程序已消失,它会尝试重新启动它。例如,如果您的应用程序服务器 http 并且应该一直在线 - Process Monitor 将确保它确实在运行。
开始监控您的应用程序的最快方法是:
> jx monitor start
> jx monitor run app.js
之后,当您的应用程序崩溃时,Process Monitor 将重新启动它。你可以通过杀死你的应用程序的进程来测试它。
进程监视器还为您提供有关当前受监视进程的信息。您可以浏览查看它们的列表:
http://127.0.0.1:17777/json
2) 第二种类型的监控功能是进程和线程恢复。使用 Process Recovery 您可以实现与使用 Process Monitoring 相同的效果,因此没有理由同时使用它们。
另一种情况可能是:
假设您有一个多线程应用程序,只需恢复它的线程就足够了。
您的应用程序通过以下命令启动:
jx mt-keep:3 app.js
这意味着,您使用 3 个线程运行它。
启用线程恢复就足以订阅process.on('restart') 事件,如下所示:
process.on('restart', function (cb) {
process.release();
cb();
});
记住,调用cb() 回调。正如您可能在文档中看到的那样,在您调用此回调之前,线程不会重新启动。在重启之前,你可以备份一些东西等等。
基本上就是这样。随意玩吧!
【讨论】: