我設計下的Rails 3.2.8的web服務,將針對用戶執行外部程序,預期使用情況是:的Rails 3異步外部程序
1)用戶填寫的參數表,並提交請求
2)Rails根據用戶請求執行Matlab程序。它會持續幾分鐘(少於3分鐘),並生成一個結果文件,顯示程序已完成
3)在此過程中,將用戶重定向到頁面顯示「加載」狀態,並監視結果文件是否有已生成
4)生成結果文件後,通過AJAX重新加載頁面並顯示結果。
有沒有「軌道」的方式來做到這一點?我之前在JAVA SSH框架中做過這個,但是非常痛苦。我需要什麼工具?例如,我是否需要像backgroundjob 這樣的寶石來管理任務隊列?或者有沒有「一站式」寶石可以處理這個問題?謝謝!
您可以使用Resque管理後臺任務,並像劍聖(儘管它過時了,讀了筆者的建議GitHub的頁面)將數據推送到客戶端時,後臺作業完成。 –
你可能全都在這,但以防萬一:爲*非常小心*有這樣的,你不把任何unsanitised數據輸入到表格到您的命令行的東西,否則你是一個「RM - rf/*'遠離災難...... –
謝謝保羅,我會非常小心的對我的驗證:)。同樣感謝saverio,在接下來的兩天裏我有點忙,但是會盡快嘗試你的建議,看看是否接受它。 – Xiaoli