0

嗨我開發了一個Rails應用程序。Rails異步作業(快速查看和最小延遲)

當一個控制器接收到一個請求時,它將呈現一個客戶端視圖並通過TCP/IP將另一個動作發送到LED ticker顯示器。但發送東西到LED ticker顯示需要約3秒。我可能會有5-10個LED發送器。

這將阻止客戶端視圖呈現。 (我可以使用多線程發送到每個LED的ticker顯示器,但是當線程隊列連接時仍然需要延遲3-5秒)

Question: 由於客戶端視圖無論如何發送到LED失敗都無關緊要。

  1. 我可以讓它成爲異步工作嗎?
  2. 我應該讓Sinatra後臺進程偵聽並由sinatra應用程序發送給LED?

謝謝!

回答

1

https://github.com/tra/spawn的spawn-plugin應該做的很好,可以使用分叉(默認),線程或yield。

我使用fork產生的長時間運行,相當繁重的任務,它的作用就像一個魅力。一個簡單的例子是:

spawn(:method => :fork) do 
    do_led_stuff() 
end 

因爲你不需要從LED-股票的任何反饋,你將不必等待()爲衍生的進程無論是。

+0

這個好像不支持rails3,我忘了提。 – c2h2 2011-03-18 05:59:25