我有一個rails 4應用程序,它有一些方法可以對外部API執行長時間的調用。問題是這些請求阻止了整個應用程序。並且只有一個用戶(請求)可以同時提供。這不是想要的。 所以我的想法是使用瘦作爲Web服務器,因爲它意味着多線程並支持併發。我是對的,那是在開源版本的phusion將無法同時運行多個請求哪個服務器爲用戶提供長時間運行請求的rails 4應用程序?
什麼是這樣的情況下表現最好的設置?
我有一個rails 4應用程序,它有一些方法可以對外部API執行長時間的調用。問題是這些請求阻止了整個應用程序。並且只有一個用戶(請求)可以同時提供。這不是想要的。 所以我的想法是使用瘦作爲Web服務器,因爲它意味着多線程並支持併發。我是對的,那是在開源版本的phusion將無法同時運行多個請求哪個服務器爲用戶提供長時間運行請求的rails 4應用程序?
什麼是這樣的情況下表現最好的設置?
我強烈建議你看看其中一個背景作業處理系統(我個人最喜歡的是Sidekiq)。將這些長時間運行的作業卸載到Sidekiq並重新配置您的應用程序以適應(比如檢查工作是否完成等)。
只要你等待大部分請求,你就可以調諧Passenger開放源代碼來處理多個併發連接,這基本上就是SSE。你可以在這裏閱讀更多關於它的信息:https://www.phusionpassenger.com/library/config/apache/tuning_sse_and_websockets/ –