2016-04-04 7 views
1

私はHeroku上でRailsアプリケーションを実行していますが、実際に長時間実行される、簡単に約1時間以上かかることがあります。私はいくつかの小さな塊に分割するほうが良いことを知っていますが、それはその課題にとってはかなり問題です。いくつかのプロセスタイプを再起動せずにHerokuアプリケーションを再デプロイすることは可能ですか

そして、私が新しいバージョンをプッシュすると、Herokuはすべてのdynos(web、workers、long workers - すべて)を再起動します。いくつかのプロセスタイプだけを再起動することは可能でしょうか?ウェブダイノスだけ?

答えて

1

いいえ、それはできません。これを回避する最も簡単でスケーラブルな方法は、長時間実行されているジョブを小さなチャンクに分割することです。 こうすれば、非常に小さなジョブが非常に迅速に処理されることになります。あなたのアプリが再起動されると、長時間実行されているジョブは停止しないので、プロセスを再起動することができます。

また、one-off dynosは、アプリのデプロイ時に再起動されません。 heroku APIを使用すると、プログラムでboot one-off dynosを使用できます。これを使用して、処理する必要のある長時間実行されるジョブごとに、1回限りのdynoを開始することができます。

そのジョブは(最大24時間、cycledになる)処理され、再起動せずにアプリを導入することができます。

+0

ありがとう、ワンオフは素晴らしいアイデアです。 –

関連する問題