是否可以在不重新启动某些流程类型的情况下重新部署Heroku应用程序

时间:2016-04-04 00:26:08

标签: ruby-on-rails heroku

我在Heroku上运行Rails应用程序,并且我已经定义了一个自定义流程类型来执行一些长时间运行的作业,真正长时间运行,一项工作可以轻松地花费大约一个小时或更长时间。我知道将它拆分成一些小块更好,但这对于这项任务来说很成问题。

问题在于,当我推出一个新版本时 - Heroku重启所有的dynos(网络,工人,长工 - 一切)。我想知道是否可以只重启某些流程类型,例如只有网络dynos?

1 个答案:

答案 0 :(得分:2)

不,那是不可能的。最简单,最具扩展性的方法是将长时间运行的作业分成更小的块。 这样,您可以非常快速地处理许多非常小的工作。当您的应用重新启动时,您将能够重新启动您的流程,因为它不会停止长时间运行的作业。

或者,部署应用时,one-off dynos不会重新启动。 使用heroku api,您可以以编程方式boot one-off dynos。使用它,您可以为每个需要处理的长期工作启动一次性dyno。

该作业将被处理(最多24小时,cycled),您可以在不重新启动的情况下部署应用程序。