我是一个新手,并试图弄清楚进程监控如何与 JXcore 一起工作。我看到了文档,但需要几个步骤才能使我的服务器应用程序启动多线程并正确监控。
提前致谢!
我是一个新手,并试图弄清楚进程监控如何与 JXcore 一起工作。我看到了文档,但需要几个步骤才能使我的服务器应用程序启动多线程并正确监控。
提前致谢!
我会尽力向你解释。做新手没有什么可耻的!:)
JXcore 为您提供两种类型的应用程序监控。
1)其中一个是进程监视器,这是一个进程,它作为单独的实例运行。您的应用程序可能会订阅它以进行监控。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()
回调。正如您可能在文档中看到的那样,在您调用此回调之前,线程不会重新启动。在重新启动之前,您可以备份一些东西等。
基本上就是这样。随意玩吧!