質問

初期イザーでRufusスケジューラプロセスを開始するアプリケーションを実行しています。アプリケーションは生産中に乗客と一緒に実行されており、いくつかの奇妙な行動に気づきました。

まず、サーバーを再起動し、初期化が実行されることを確認するには、両方を実行する必要があります touch tmp/restart.txt ブラウザにアプリをロードします。その時点で、初期化は発火します。恐ろしいことは、タッチのみを行う場合、Rufusによってスケジュールされたプロセスがリセットされ、ブラウザにアプリをロードするまで再スケジュールされないことです。

これだけで対処できます。しかし、これは2番目の問題につながります。スケジュールされたプロセスが実行されていないことに気付くので、ページを読み込み、突然ログファイルが再起動したかのように初期剤を実行していることを示しています。したがって、ある時点で、乗客はTMP/restart.txtに触れてスケジュールされたプロセスを一掃したかのようにランダムに再起動しています。

私は乗客とRailsの統合について非常に不十分な理解を持っているので、この時折の再起動が異常であるか、アーキテクチャのすべての部分であるかはわかりません。誰かがこの状況について何か知恵を提供できますか?

役に立ちましたか?

解決

あなたが説明するのは、乗客の仕組みです。トラフィックがそれらを保証するときにアプリケーションの新しいインスタンスを生み出し、無料のリソースに対する不活性の期間の後にそれらをシャットダウンします。

特に乗客の文書を読む必要があります リソース制御と最適化セクション. 。それがあなたが望むものであれば、乗客がアプリケーションがシャットダウンするのを防ぐことができる設定があります。

PassengerPoolidletimeの設定を使用すると、少なくとも1つのプロセスを実行し続けることができますが、必要に応じてアプリの他のインスタンスを開始するには、ほぼ確実に乗客が必要です。 このスレッド Rufusスケジューラでは、Googleグループはロックファイルを使用して、複数のプロセスがスケジューラを起動するのを防ぐことができますが、これはあなたにとって役立つかもしれません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top