Rails 3.2后台任务

时间:2012-07-16 14:48:07

标签: ruby-on-rails heroku background delayed-job

我正在Heroku上运行Rails 3.2,而我正在使用 Delayed_job 来管理后台任务。

该应用程序生成一个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

我如何将这样的事情转移到后台工作?

1 个答案:

答案 0 :(得分:0)

我会做这样的事情:

  1. 为文件生成创建后台作业。
  2. 重定向到等待后台作业完成并等待定期刷新的等待页面
  3. 后台作业完成后,重定向到文件的URL。
  4. 可选步骤2.5将生成的文件上传到amazon s3,这使第3步更容易。