2013-03-13 53 views
4

Rails本身基於多個獨立的進程,這些進程之間是無狀態請求。我需要爲我的Rails應用程序添加一個有狀態的集中服務(一個遊戲自動匹配器)。如何創建Rails使用的機架應用程序?

從我所知道的很少,我應該使有狀態的服務機架應用程序。有沒有關於如何製作機架應用程序的教程,以及如何從Rails與其進行通信也很重要。用Rails部署它的習慣用法以及將它放入我的git Rails代碼庫的習慣用法是什麼?

+0

我認爲如果你能澄清你正在努力完成的事情會有所幫助。 Rack嚴格來說只是一個界面,它定義了一個Ruby應用程序處理HTTP請求的合約。 如果您可以提供關於您的「遊戲自動匹配器」應該做什麼的更多詳細信息,我可以提供更有用的答案。 – 2013-03-16 22:51:24

回答

2

我得到了我的問題的另一個問題回答:

How to read POST data in rack request

require 'json' 

class Greeter 
    def call(env) 
    req = Rack::Request.new(env) 
    if req.post? 
     puts req.POST() 
    end 
    [200, {"Content-Type" => "application/json"}, [{x:"Hello World!"}.to_json]] 
    end 
end 

run Greeter.new 

,並使用JSON.parse(req.body.read)解析POST數據。

0

機架以外的其他選項是daemonize您的應用。

+0

據我所知,中間件Rails是Rails請求處理的一部分。但它不是一個獨立的進程,在Rails之外運行,這正是我想要的。 – user782220 2013-03-13 10:09:16

+0

哎呀,抱歉,誤解了您的問題 – 2013-03-13 10:10:28

+0

守護它仍然是一個有效的選擇,但。你將有一個單獨的進程在socket或localhost上提供數據,就像memcached一樣 – 2013-03-13 10:13:29

相關問題