【问题标题】:Rails 3.2 Tasks in the backgroundRails 3.2 后台任务
【发布时间】:2012-07-16 14:48:07
【问题描述】:

我在 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

我如何将这样的东西移到后台作业中?

【问题讨论】:

  • 网上有很多教程。先试试看。如果您有具体问题,请回来并在此处发布。
  • 你可以使用 send_file 和 delay 方法而不是 respond_to

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


【解决方案1】:

我会这样做:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2011-12-01
    • 2011-09-29
    相关资源
    最近更新 更多