第 3 方库之一很少表现出奇怪的行为,并使应用程序进入一些无法恢复的奇怪状态。所以我做了一个逃生舱来捕捉错误,然后我调用 process.exit(0)希望 Heroku 会重新启动它。
今天是第一次发生这种情况,不幸的是,Heroku 花了大约 10 分钟才决定重新启动测功机。它不断向 error code=H10 desc="App crashed" 发送垃圾邮件一路上。
有什么更好的方法来处理这个问题,以便 Heroku 立即重新启动?我想避免调用 Heroku API,这是一种奇怪的解决方法。

请您参考如下方法:

首先,我认为您的“逃生舱”不是处理 Node 应用程序“奇怪状态”的好习惯。您应该正面解决问题,可能会删除该 3rd 方库并确保您的应用程序始终按预期工作。
话虽如此,“Heroku 花了大约 10 分钟”这一事实是因为您可能正在使用他们的“通用运行时”。如果您希望您的服务在出现故障时立即重新启动,您将不得不考虑在其“私有(private)空间运行时”中运行它们。
来自 the docs :

The Common Runtime implements an incremental backoff policy for crashing dynos

The Private Spaces Runtime does not have a backoff policy. When a dyno crashes it will be continuously restarted with no cool-off period.


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!