2016-04-04 47 views
1

我在Heroku上运行Rails应用程序,并且我定义了一个自定义进程类型来执行一些长时间运行的作业,非常长时间运行,可以工作轻松地采取约一个小时或更多的东西。我知道最好把它分成几个小块,但这对于这个任务来说是个问题。是否有可能重新部署Heroku应用程序,而无需重新启动一些进程类型

问题是,当我推新版本 - Heroku重新启动所有的dynos(网络,工人,长工 - 一切)。我不知道是否有可能只重启一些处理类型,例如只有网络dynos?

回答

1

不,这是不可能的。最简单且最具扩展性的方法是将长时间运行的作业拆分为更小的块。这样,你就会有很多非常小的工作正在被快速处理。当您的应用程序重新启动时,您将能够重新启动您的进程,因为它不会阻止长时间运行的作业。

或者,one-off dynos将不会在您的应用程序部署时重新启动。 使用heroku api,您可以编程方式boot one-off dynos。使用它,您可以为每个需要处理的长时间运行的作业启动一次性测功机。

该工作将被处理(长达24小时,其中将是cycled),并且您将能够在不重新启动它的情况下部署您的应用程序。

+0

是的,谢谢,一次性是一个好主意。 –

相关问题