Rails アプリをチャット サーバーとして使用できるように、EventMachine の SimpleChatServer サンプルを変更しました。次のように、チャットサーバーを別のスレッドで初期化します。
Thread.new {
puts "I entered a new thread"
EventMachine.run do
puts "I entered a new thread"
EventMachine.start_server("0.0.0.0", 3100, SimpleChatServer)
end
}
Apache を実行している VPS でアプリをホストしており、Phusion Passenger を使用して Rails アプリを提供しています。チャット サーバーは、1 つの問題を除いて完璧に動作します。サーバーは数分後に自動的に停止します。エラーログを確認すると、シャットダウンに関連するものは何も見つかりません。しかし、私が観察した興味深いことは、シャットダウンの奇妙な動作です: 私の場所での日中 (午前 11 時から午後 5 時) の間、開始から数分後にチャット サーバーが停止します (私のタイムゾーンはサーバーのタイムゾーンより 10 時間進んでいます)。 )。ただし、私の側では夜間にサーバーがシャットダウンせずに実行され続けます。この奇妙な行動は私の頭を悩ませています。
私自身の推測では、私の日中は、VPS がより多くの負荷を処理しなければならないため、Chat Server スレッドが強制終了されます。どうにかしてそれを避けることはできますか?また、この奇妙な動作の他の理由があるかどうかも知りたいです。これで私を助けてください
追加: エラー ログを確認すると、これが表示されます。"[ 2015-03-06 08:00:20.5859 25041/7f20f1439700 エージェント/HelperAgent/Main.cpp:722 ]: プロセス 25069 の長時間接続を切断しています" ここで 25069 はチャット サーバーの PID です。どうすればこれを回避できますか? プロセスを強制終了しないように Linux に指示するにはどうすればよいですか?