当群集结束时,“状态从上到下崩溃”。 它应该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
孩子,然后重新分叉每一个,直到引导超时被打。