0

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

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

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

谢谢

4

1 回答 1

3

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

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

然后我们有另一个动作,我们可以使用 AJAX 进行轮询,返回报告是否完成,完成后,它会为用户提供 PDF。

实际的生成是由不受网络服务器超时影响的Sidekiq工作人员完成的。

于 2013-11-06T18:56:11.897 回答