我的rails 3.2应用程序有一个报告页面经常需要90多秒才能呈现,因此我将report-builder作为delayed_job任务运行,然后显示“等待一分钟”视图(带有刷新按钮),直到内容为止ready(视图中使用content_ready
标志,以显示“等待消息”或报告(视情况而定)。在我的原型中,用户必须手动刷新页面,直到设置content_ready
(然后呈现报表视图)。
我想在content_ready
为真时自动刷新页面。
实现这一目标的最简单方法是什么,因为它是一个很少被命中的页面,因此效率低下的方法,例如告诉用户的浏览器每10秒轮询服务器(或重绘整个页面),这很好吗? / p>
答案 0 :(得分:1)
在页面上设置元刷新或使用jjery更新程序(如果使用jquery,see here)检查特定的控制器操作,该操作会告诉您作业是否已完成,或者该文件是否存在于该位置预期
或者,假设您正在使用delayed_job gem,请查看作为作业排队执行的一部分提供的挂钩。有关gem's GH page的文档。
答案 1 :(得分:1)
我建议采用以下策略:
这是一个非常简单的策略,但它确实有效。