簡短版本:我需要從Rails控制器(使用Rails 3)啓動子進程(Ruby腳本),並將子進程中的消息呈現給網頁,並將信息從Rails視圖傳遞到子流程。Rails 3 I/O到後臺進程
的設置:我有一個Ruby腳本,與被稱爲Ivy軟件消息總線系統進行通信,使用Ruby 1.9.3發送控制消息和接收來自某些硬件我的網絡上的其他地方運行的消息。我不能在這裏使用另一種消息傳遞系統,它必須是常春藤。該腳本當前將消息寫入stdout
。
問題1:我想啓動這個腳本作爲一個子進程(或線程,我願意接受建議)從一個Rails應用程序的控制器。我希望能夠接收來自此腳本的消息,以便它們可以顯示在網頁上。沒有必要將這些消息持久地存儲在數據庫中,所以我正在考慮使用Rails緩存來臨時存儲和訪問這些消息,並可能使用AJAX在一段時間內對緩存中的新消息進行輪詢。這可能嗎?
問題2:即相同的Rails應用需要能夠從網頁發送控制消息(例如,通過與按鈕,下拉菜單或一些其他UI元素交互的用戶)的常春藤子,使得這些控制消息可以傳播到硬件。
我特地到像Sidekiq,Delayed Job,以及其他可能的解決方案,但我無法通過瀏覽文檔,這些潛在的解決方案可以解決兩個問題1和2。所以找到確鑿的證據,我的問題如下:
- 像Sidekiq或DelayedJob這樣的現成解決方案可以處理此任務嗎?
- 是否有一些內置到Rails的方式已經可以實現這一點?
- 這個問題與觀點接壤,但我會反問。我還有其他的追求Rails的理由,但是如果這項任務會非常困難,他們可能會被拋棄。使用Rails做這樣的事情是非常痛苦的,我應該研究其他解決方案嗎?
導軌4支持實時流式傳輸([檢查這個](http://tenderlovemaking.com/2012/07/30/is-it-live.html)) – mdesantis 2013-04-10 18:46:35