我遇到的问题是生成大型报告。我正在使用虾宝石获得结果,但我想知道这是否可以迁移到后台进程。
由于我使用faye进行推送通知,而sidekiq用于后台任务,因此可能的解决方案是在sidekiq worker中生成报告,并使用faye通知客户端工作人员的完成情况。这个问题是我没有看到一种优雅地清理生成的文件的方法。我不认为在控制器操作中生成文件是可行的,因为它会导致不合理的加载时间并阻止其他请求。
这个系统可行吗?或者我是以错误的方式思考这个问题?
答案 0 :(得分:1)
你是对的,这是完全有效的事情。
我不确定您对“清理生成的文件”的含义。如果您的意思是从文件系统中删除,您可以在下载它的控制器中执行此操作,并最终添加一个删除所有剩余文件的每日cron作业。
我们在各种项目中使用过这样的系统。
如果生成时间非常长,则另一个选项是,在生成报告并嵌入报告或链接后,发送电子邮件(如果有的话)。