1

我已经修改了 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 永远不要杀死我的进程?

4

1 回答 1

0

很久以前,我在 github 上的一个线程中找到了解决方案。该进程被终止,因为乘客终止空闲应用程序以节省内存。为了禁用它并保持我的进程运行,我需要max_pool_idle_time to 0在我的乘客配置中进行设置。这是原始线程的链接:https ://www.phusionpassenger.com/documentation/Users%20guide%20Nginx.html#_configuring_phusion_passenger

于 2015-12-03T09:38:10.487 回答