2010-02-16 41 views
1

控制器性能的Ruby我已經在控制器提高on Rails的

user = RegUser.create_reg_user(:some_parameters) 
UserStuff.pass_user(some_parameters) 
@hex = user.hex 

以下代碼的@hex被傳遞到視圖並返回。 UserStuff調用需要花費大量時間,對於視圖所需的@hex並不重要。有辦法繼續並返回@hex並加載視圖,然後讓UserStuff過程?

回答

2

將這些長時間運行的「作業」卸載到後臺隊列中。可能對您進行設置和運行最簡單的方法是Delayed Job

我們使用Beanstalkd(隊列)和許多工作進程來處理所有長時間運行的任務(或任何需要超過1-2秒的任務)。

擁有後臺系統來處理這類作業的美妙之處在於,您可以快速擴展,您可以啓動任意數量的工作進程,這些工作進程都可以從主隊列中提取作業(如果是延遲工作)。