我有一个网络应用程序,它有一个长时间运行的任务——生成 PDF 报告。生成各种图表,总共需要大约 15 秒的时间来处理。该报告由用户生成。
在请求时处理报告目前会导致流程被占用,更重要的是(鉴于本网站的使用不重)有时请求会超时。
因此,我正在重新设计应用程序这一部分的架构(Rails 2.3.8)。将这一点放在上下文中,每天生成的这些报告不太可能超过几个,这是一个非常小众的应用程序,因此显着的进一步扩展并不是主要问题。我确实打算在未来交出这个项目,所以稳定性是。
我认为最明显的解决方案是使用Spawn生成报告,并在完成后通过电子邮件向用户发送下载链接。我研究过的另一个解决方案是DelayedJob。
做过类似事情的任何人都可以推荐一种方法而不是另一种方法吗?