事件机器聊天服务器停止,没有错误跟踪
我修改了EventMachine的SimpleChatServer示例以使用Rails应用程序作为聊天服务器。我按如下方式在一个单独的线程中初始化聊天服务器。事件机器聊天服务器停止,没有错误跟踪
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应用程序。聊天服务器工作完美,除了一个问题:服务器几分钟后自动停止。当我检查错误日志时,我发现没有任何与关机相关的内容。然而,我观察到的一个有趣的事情是关机的奇怪行为:在我的位置(上午11点 - 下午5点)的白天,聊天服务器在几分钟的启动后停止(我的时区比我服务器的时区早10小时)。然而,在我身边的夜间,服务器不停机运行。这种奇怪的行为令我陷入沉思。
我自己的假设是,在我一天的时间里,VPS有更多的负载需要处理,因此它杀死了聊天服务器线程。我能以某种方式避免这种情况?此外,我很想知道这种奇怪行为是否有其他原因。请帮我这个
此外:当我检查我的错误日志,我看到这一点。 “[2015-03-06 08:00:20.5859 25041/7f20f1439700代理/ HelperAgent/Main.cpp:722]:断开进程25069的长时间连接” 25069是我的聊天服务器的PID。我怎样才能避免这种情况?我如何指示Linux不要终止我的进程?
很久以前,我在github的一个线程中发现了这个解决方案。这个过程因乘客杀死空闲应用程序以节省内存而死亡。为了禁用此功能并保持我的过程正常运行,我需要在我的乘客配置中设置max_pool_idle_time to 0
。这里是一个链接到原始线程:https://www.phusionpassenger.com/documentation/Users%20guide%20Nginx.html#_configuring_phusion_passenger
请确保您的主线程不退出。也许增加额外的at_exit {}日志?检查低RAM,如果这是你怀疑。 – rogerdpack 2015-03-02 21:45:54