0
我有一个Web应用程序,它有一个长时间运行的任务 - 生成PDF报告。生成各种图形,总共需要大约15秒的时间。该报告由用户生成。处理长时间运行的任务
在请求时处理报告现在导致进程被阻塞,更重要的是(由于使用本网站不重)有时请求超时。
因此,我正在重新设计应用程序的这一部分的体系结构(Rails 2.3.8)。为了说明这一点,不可能每天都会生成几个这样的报告,而且这是一个非常利基的应用程序,所以重要的进一步扩展并不是主要关心的问题。尽管如此,我打算在未来交出这个项目,所以稳定性是。
最明显的解决方案,我认为是用Spawn生成报告,并触发一个下载链接到用户在电子邮件中一旦完成。我研究过的另一个解决方案是DelayedJob。
能做出类似事情的人能推荐一种方法吗?
是的,我想,我想知道如果另一个好处可能是当前同步完成(如忘记密码,电子邮件),但是这可能有时其他任务,需要一段时间,可以使用相同的机制来排队。 我想缺点是有一个后台进程始终运行,而不是在需要时分叉进程。 为了翻转它,是否有任何情况下任何人都会推荐使用Spawn分支进程? – sparky 2012-02-20 01:11:12