Heroku:当你的dyno /工作人员崩溃时怎么办?

我有一个工作人员24/7做一些处理。 然而,有时代码崩溃,需要重新启动(即使我发现exception,我必须重新启动工作,以使其工作)。

如果发生这种情况,或者我做错了什么,这不应该发生? 你的dynos /工作人员崩溃还是只是我?

谢谢

Heroku每次崩溃都应该重启一个工作者。 据我所知,你不必select或configuration任何东西。 不pipe你的工作是什么:工作任务一旦失败就会被执行。

如果您在Web应用程序中严重依赖后台作业。 您可以创build一个rake任务,查找最后一条logging进行更新,并执行后台作业进行更新。 或者可能自动执行rake任务,以查找自上次崩溃以来需要更新的其余logging。

或者,如本文所述 (使用delayed_job)强制worker手动重新启动:

heroku workers 0; heroku workers 1; 

或者,也许你可以重新启动一个特定的工作者(在本文中提到):

 heroku restart worker.1 

顺便说一句,尝试1.9堆栈 。 确保你的应用程序是1.9.2兼容,在这样做之前。 希望崩溃在那里不那么频繁:

 heroku stack:migrate bamboo-mri-1.9.2 

在这种情况下,这样的问题依然存在。 最好联系Heroku支持。 他们对自己的工作非常敏感。

最新命令重新启动一个特定的heroku web worker (2014):

 heroku ps:restart web.1 

(在雪松堆栈上testing)

有时,例如在DB崩溃的情况下,工作人员可能不会自动重启。 你需要这样做。

heroku重启web.1

它为我工作。