重启node.js集群worker

发布于 2024-12-05 04:41:14 字数 241 浏览 2 评论 0原文

我有一个节点应用程序,我使用集群在多个核心上运行。

我遇到了一个问题,当我的应用程序抛出异常时,工作人员会死亡并且不会重新启动。这是有道理的,但我想知道是否有更好的方法来处理重新启动这些工作人员,而不必监视它或尝试/捕获或侦听每个错误。

我以前一直用过,似乎这样的东西对于集群来说很有效。

有没有办法重新启动它们,或者在 Express 的顶层添加“pokemon”异常处理,以确保我的工作人员在出现意外异常时不会死亡?

I have a node app I use cluster to run on multiple cores.

I'm running into an issue where when my app throws an exception, the worker dies and doesn't restart. That makes sense, but I'm wondering if there is a better way to handle restarting these workers instead of having to monitor it or try/catch or listen for every error.

I've used forever before, and it seems like something like this would work well for cluster.

Is there a way to reboot them, or add "pokemon" exception handling at a top layer in express to make sure my workers won't die if there's an unexpected exception?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

困倦 2024-12-12 04:41:14

有许多第三方工具可以帮助解决这个问题。 Monit (http://mmonit.com/monit/) 在 Node 社区中非常流行。另一个选择是supervise (http://cr.yp.to/daemontools.html)。

There are many 3rd party tools that can help with this. Monit (http://mmonit.com/monit/) is quite popular in the Node community. Another option, of many, is supervise (http://cr.yp.to/daemontools.html).

樱娆 2024-12-12 04:41:14

当死亡事件发生时分叉新的worker

cluster.on("death", function(worker){
    console.log("worker " + worker.pid + " died");
    var newWorker = cluster.fork(); 
    console.log("worker " + newWorker.id + " live");
});

fork the new worker when death event occurs

cluster.on("death", function(worker){
    console.log("worker " + worker.pid + " died");
    var newWorker = cluster.fork(); 
    console.log("worker " + newWorker.id + " live");
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文