2013-01-13 37 views
0

我需要解決此任務。EventMachine服務的任務

我需要開發一個服務,它提供HTTP GET請求並使用EventMachine進行保證。

  • 服務有API /發送? url = http%3A%2F%2Fya.ru,其中url是需要傳遞的http請求/

對於每個請求,API一次響應200正文OK。在此之後,該服務會嘗試傳送所有請求。如果收到答案200,則該請求被視爲已傳送。如果請求失敗,請稍後再試。

  • 服務具有函數/統計信息,其中顯示了一個包含'highcharts'的圖表,其中顯示了三行 - 接收到的請求,成功的請求和失敗的請求。

該步驟是1秒。該代碼應該覆蓋測試rspec /黃瓜。如果服務不是持久的,它會在重啓後丟失數據嗎?

任何幫助將不勝感激。我不知道從哪裏開始。但我有使用RoR構建應用程序的一些經驗。如果有人能給我真正類似的任務已經解決了,我會很高興。

回答

0

下面是一個片段,讓你開始。它使用em-http-request gem來執行一個GET請求,並在一個小延遲後返回一個404狀態碼,然後重試。您應該能夠使用此代碼作爲基礎來構建您所要求的內容。

require "eventmachine" 
require "em-http" 

def do_get_request(url) 

    request = EM::HttpRequest.new(url).get 

    request.callback do 

    status = request.response_header.status 

    if status == 404 
     puts "Request #{url} failed with status #{status}, retrying" 
     EM.add_timer(1) do 
     do_get_request(url) 
     end 
    else 
     # Process request.response 
    end 

    end 
end 

EM.run do 
    do_get_request(ARGV[0]) 
end