2015-06-24 76 views
0

我有一個Rails 4應用程序,它有一些API方法,這些方法消耗時間進行計算併爲客戶端生成巨大的JSON響應。問題是這些請求阻止了整個應用程序。並且只有一個用戶(請求)可以同時提供。該請求運行很長時間才能生成JSON響應。當第一個請求正在運行,並且應用程序接收到新的請求時,那麼所有這些新的請求都失敗了。如何解決這個問題。不幸的是,rails不會自動執行此操作。 我在SO上經歷了類似的線程,但沒有能夠找到Rails 4應用程序的解決方案。請分享您的經驗並指導我以正確的方向解決此問題。 謝謝!Rails 4長時間運行請求

+0

使用Rails應用程序服務器,允許多個用戶在同一時間送達。 – sevenseacat

+0

它是在生產模式下乘客運行..同樣的問題...請告訴我的解決方法 – inox

回答

1

這種長時間運行的API調用的最佳做法是使它們異步。這樣用戶線程就不會被阻塞。

兩個流行的寶石來運行後臺作業是
1)https://github.com/collectiveidea/delayed_job
2)https://github.com/resque/resque

+0

謝謝大衛..如果我使用延遲工作或救援,,讓我們說,我正在向API請求5 ..將請求等待在後臺作業中生成的JSON響應。基本上,我想知道流程的流程..這是如何實現的....你可以給我任何例子或鏈接瞭解更多關於它.. – inox

+0

請求不會等待。參考這個博客。 http://blog.andolaso​​ft.com/2013/04/4-simple-steps-to-implement-delayed-job-in-rails.html# –

相關問題