长时间运行的任务轨道

时间:2013-11-06 18:51:35

标签: ruby-on-rails ruby

我正在建立一个网站,我有一个管理员页面。管理员必须运行报告任务,这意味着,任务将迭代所有记录获取信息并生成pdf文件。现在,这将对应用程序和数据库造成沉重负担。

通常的做法是什么?我应该有一个调用类方法的按钮,还是应该有一个rake任务?我听说HTTP GET请求有一个限制,如果生成报告的次数超过了那个,那么就会终止请求。

我想使用send_data(....),以便在完成报告后为用户提供一个很好的下载弹出框。使用邮件并通过电子邮件发送它会更好吗?

由于

1 个答案:

答案 0 :(得分:3)

我们的Rails应用程序在我的工作中具有类似的功能。

我们有一个URL /操作启动生成PDF文件的请求,并立即返回说请求已成功启动。

然后我们可以使用AJAX轮询另一个动作,该动作返回报告是否完整,当它完成时,它会向用户提供PDF。

实际生成由Sidekiq工作人员完成,该工作人员不受网络服务器超时的限制。