2016-04-04 78 views
1

我在Heroku上運行Rails應用程序,並且我定義了一個自定義進程類型來執行一些長時間運行的作業,非常長時間運行,可以工作輕鬆地採取約一個小時或更多的東西。我知道最好把它分成幾個小塊,但這對於這個任務來說是個問題。是否有可能重新部署Heroku應用程序,而無需重新啓動一些進程類型

問題是,當我推新版本 - Heroku重新啓動所有的dynos(網絡,工人,長工 - 一切)。我不知道是否有可能只重啓一些處理類型,例如只有網絡dynos?

回答

1

不,這是不可能的。最簡單且最具擴展性的方法是將長時間運行的作業拆分爲更小的塊。這樣,你就會有很多非常小的工作正在被快速處理。當您的應用程序重新啓動時,您將能夠重新啓動您的進程,因爲它不會阻止長時間運行的作業。

或者,one-off dynos將不會在您的應用程序部署時重新啓動。 使用heroku api,您可以編程方式boot one-off dynos。使用它,您可以爲每個需要處理的長時間運行的作業啓動一次性測功機。

該工作將被處理(長達24小時,其中將是cycled),並且您將能夠在不重新啓動它的情況下部署您的應用程序。

+0

是的,謝謝,一次性是一個好主意。 –

相關問題