2015-09-04 70 views
0

的想法是有一個網頁,一個並行處理,並在同一時間顯示加載gif或一個JS的比賽,因爲等待是漫長洙,像這樣:導軌 - 加載頁面並行

enter image description here

所以,基本上就是這樣一個想法,進入一個控制器,它需要花費大量時間的平行過程,同時顯示他的頁面,讓 娛樂用戶,並且由ajax不斷檢查並行過程是否完成,所以顯示一個按鈕可以繼續到下一頁

Consi因爲進程本身需要10分鐘的時間,所以服務器的超時會在進程完成之前終止進程,所以在這個想法中,當顯示wait.html.erb並且在同一時間並行過程仍然存在

還認爲我什麼也沒做,因爲我不知道這個想法是否可能,所以我的問題是如果它的可能?以及將如何做?

+0

你看過紅寶石平行寶石嗎? https://github.com/grosser/parallel – trh

+0

是@trh,不幸的是我需要的是並行功能在後臺運行,控制器功能完成並顯示視圖後;平行的寶石等待,直到所有線程完成顯示視圖 – nnn7867

回答

0

你可以簡單地使用(在這個例子中Sidekiq)後臺處理工人:

class HardWorker 
    include Sidekiq::Worker 
    def perform(user_id) 
    VeryLongProcess.run 
    notify(user_id) 
    end 
end 

而且notify方法既可以推送通知用戶(例如使用的WebSockets),或者只是存儲在Redis的或其他的設置DB表示該作業已完成。這反過來可以通過您的AJAX調用讀取。