2012-07-16 90 views
0

我在Heroku上運行Rails 3.2,我使用Delayed_job來管理後臺任務。Rails 3.2後臺任務

該應用產生一個通過瀏覽器下載到請求它的人的CSV。該文件雖然很大,但最多需要30秒才能生成。

我的控制器看起來是這樣的:

def index 
    @unpaginated = @search.result.order("created_at DESC") # load all matching records 

respond_to do |format| 
     format.csv { render csv: @unpaginated, filename: 'outlets_' + Time.now.strftime("%Y_%m_%d") } 

end 

我怎麼會提出這樣的事到後臺作業?

+0

有大量的在線教程。先嚐試一下。如果您遇到特定問題,請回復並在此處發帖。 – zsquare 2012-07-16 15:03:17

+0

你可以使用send_file而不是respond_to – 2012-07-16 15:15:55

回答

0

我會做這樣的事情:

  1. 創建的文件生成一個後臺作業。
  2. 重定向到一個等待頁面,等待後臺作業完成並定期刷新
  3. 當後臺作業完成時,重定向到該文件的url。

可選步驟2.5將生成的文件上傳到amazon s3,這使得步驟3更容易。