从EventMachine服务器连接获取数据?

时间:2014-01-08 05:41:08

标签: sinatra rack eventmachine

我正在尝试创建一个Sinatra服务器,它将返回有关EventMachine服务器的统计信息。也就是说,我正在运行:

EventMachine.run do
    server = EventMachine.start_server 'localhost', 3333, MyApp

    dispatch = Rack::Builder.app do
        map '/' do
            run MySinatraApp
        end
    end

    Rack::Server.start({
        app: dispatch,
        server: 'thin',
        Host: '0.0.0.0',
        Port: '1111'
    })
end

我的目标是找出start_server启动的正在运行的服务器的信息,例如connection_count。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

据我所知,没有内置方法可以做到这一点(希望有人反驳我),

你可以在MyApp+1上保持一个计数器在连接上,-1在unbind上保持相同的效果。

答案 1 :(得分:0)

为什么呢?为什么不让EM服务器提供/info端点或返回所需信息转储的东西?你为什么需要第二台服务器?如果你真的想要第二台服务器那么它可能只是一个简单的sinatra应用程序向/info发出HTTP请求并返回结果。

对于connection_count,您可以调用EM.connection_count。你可以看到它here