0

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

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

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

4

1 回答 1

0

我会做这样的事情:

  1. 为文件生成创建后台作业。
  2. 重定向到等待后台作业完成并定期刷新的等待页面
  3. 后台作业完成后,重定向到文件的 url。

(可选)步骤 2.5 是将生成的文件上传到 amazon s3,这使步骤 3 更容易。

于 2012-08-03T20:45:40.237 回答