我們正在做一些新應用的原型設計,並注意到其中一項操作需要永久加載(80-120秒)。由於很多處理不需要在頁面加載時發生(我們可以稍後通過Ajax請求數據),所以我想使用Process.fork
來允許頁面立即返回,而處理仍然在「幕後」進行。Rails控制器中的Process.fork
我們使用Apache與Passenger爲應用程序。
幾件事情:
我知道delayed_jobs,resque,BJ等後臺作業的寶石。我們使用dj,並且最終會使用類似的東西來實現這一點。這是我們原型設計時的權宜之計。
我不關心服務器的性能。該應用程序運行在自己的服務器上,只有少數用戶試用它。
早期測試表明這很好,但我想知道這是否是一個好主意。它會變得可靠嗎?如果用戶導航到另一個頁面,或者關閉標籤頁/瀏覽器,分叉過程是否會繼續? fork完成後,進程是否會自行終止?
很好的答案,謝謝。這是我正在尋找的信息 - 我對乘客查殺過程感到好奇等等。問題是,在我們進行原型設計時,我不想花費大量的時間或精力設置後臺處理。雖然我們最終會使用DJ,BackgrounDRb,Resque或類似的技術,但在這種情況下它們都是過度的。我只想返回頁面,同時執行一個單一的模型動作,用數據填充一些數據庫表。 – vonconrad 2010-10-21 12:38:46
我用另一個想法編輯了答案。 – gertas 2010-10-24 18:34:36