gpt4 book ai didi

node.js - 当集群结束时, “State changed from up to crashed”。它应该 fork()

转载 作者:太空宇宙 更新时间:2023-11-03 22:55:04 26 4
gpt4 key购买 nike

我有一个主应用程序和一个从应用程序。在我的本地计算机上,一切正常:当一个奴隶因某种原因而死亡时process.exit(0) ,我 fork 并继续。

我捕获了它,

cluster.on('exit', function(worker, code, signal) {
if(code == 0){
cluster.fork();
}
});

遗憾的是,在 Heroku 上,一旦从机执行 process.exit(0),“状态从 up 变为 crashed”

有绕过 Heroku 防护措施的想法吗?

最佳答案

Heroku dynos 是一个虚拟应用程序容器,使用构建包中所需的二进制文件构建,并与应用程序代码的版本相结合。此应用程序容器的唯一工作是运行 Procfile 描述的进程。

如果该进程意外终止,Heroku 会认为 dyno 崩溃并尝试重新启动该进程。此外,如果应用程序在 60 秒内未绑定(bind)到指定的 PORT,测功机将会崩溃。

如果您的后端工作进程在启动时未绑定(bind)到端口,则在发出 process.exit(0) 之前,它们将永远不会监听该端口。如果dyno在超时时间内没有绑定(bind)到端口,Heroku将认为它崩溃了。

我的猜测是,您会立即退出每个子工作进程,导致主进程 fork N 个子进程,然后重新 fork 每个子进程,直到达到启动超时。

关于node.js - 当集群结束时, “State changed from up to crashed”。它应该 fork(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20995683/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com