2014-01-08 27 views
-1

我正在嘗試創建一個將返回有關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。有沒有辦法做到這一點?

回答

1

據我所知是沒有內置的方式做到這一點(希望有人反駁我),

你可以取消綁定的連接和-1保持計數器MyApp+1爲同樣的效果。

+0

您是否知道是否有方法從該服務器實例訪問「MyApp」信息?顯然我不能使用'MyApp.new',但我不知道從'start_server'開始的'MyApp'獲取信息的方法。 – josh

+0

對不起:/完全忘了這個問題,希望你管理好了,這並不複雜 – bbozo

+0

我做了,謝謝!我只是讓類變量來保存信息而不是實例變量,並在Sinatra服務器中使用它們。 – josh

0

爲什麼?爲什麼不只是讓EM服務器提供一個/info端點或返回所需信息轉儲的東西?你爲什麼需要第二臺服務器?如果你真的想要第二臺服務器,那麼它可能只是一個簡單的Sinatra應用程序,它會向/info發出HTTP請求並返回結果。

對於connection_count它看起來像有一個EM.connection_count你可以打電話。你可以看到它here