0

我的应用程序的一部分创建了一个导出文件。对于绝大多数用户来说,导出文件过程相当快,但是有些用户会生成 10,000 条或更多记录。这使事情复杂化。首先,导入文件的工具会炸毁大于约 4,000 条记录的文件。其次,处理 10,000 条记录大约需要 20 分钟。用户倾向于开始做其他事情,然后出于某种原因,该过程似乎超时并且他们永远不会得到他们的文件。但是,如果您单击进程按钮,然后不理会您的机器,20 分钟后您将获得该文件。

我需要使它更加用户友好和健壮。这是我的想法:1)自动创建 4,000 个单独的文件 2)为文件生成提供状态栏 3)后台处理,以便用户可以单击按钮并在一个小时后返回并下载他们的文件

所以我一直在研究后台插件和宝石。大多数似乎都已经过时了,这让我很紧张,而且对于我需要的东西来说似乎有点过头了。所以 Spawn 似乎很简单直接,但我不清楚如何为这种类型的产品制作状态栏。

然后我们有类似Delayed_job 的东西。这似乎可行,但似乎有点重,但它确实提供了生成某种状态更新的钩子。有人有这方面的例子吗?自述文件有点轻。

另一个问题是文件生成,如何下载多个文件?无论如何,我可以为用户会话的实时存储生成的文件吗?

最后,大多数解决方案看起来像是一个重大变化,这个问题很痛苦,但在技术上是可行的。所以我被分配解决它的时间很短,所以我试图亲吻。感谢您提供的任何帮助和/或指导。

4

1 回答 1

1

如果您正在寻找后台处理工作,我想您必须寻找resque它在redis上超级容易运行,而不是延迟_job,它会轮询您的数据库更改

根据收集进度信息,我猜这里有一堆 resque 插件可以帮助你完成任务

最后

Another issue is the file generation, how do I get this multiple files to download? Anyway, I can store the generated file for the live of the user session?

不确定您的实际意思,但如果您想下载多个文件,可以压缩成一个文件可以提供帮助

于 2012-06-19T19:08:22.077 回答