当群集结束时,“状态从上到下崩溃”。 它应该fork()

我有一个主人和奴隶的应用程序。 在我的电脑本地,一切正常:当一个奴隶死亡,因为process.exit(0) ,我叉,它继续。

我抓住它,

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

不幸的是,在Heroku上,只要从机执行process.exit(0) "State changed from up to crashed"

任何想法绕过Heroku保障?

Heroku dynos是一个虚拟的应用程序容器,它由构build包中的所需二进制文件构build而成,并与应用程序代码的发行版结合在一起。 这个应用程序容器的唯一工作是运行你的Procfile描述的Procfile

如果该过程意外终止,Heroku认为测功机崩溃并将尝试重新启动该过程。 另外,如果应用程序在60秒内没有绑定到指定的PORT ,testing仪将会崩溃。

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

我的猜测是,你立刻退出每个子工作进程,导致主人分叉N孩子,然后重新分叉每一个,直到引导超时被打。