0

我有一个执行大量非常昂贵的嵌套查询的 Rails 视图。我希望将繁重的工作投入到延迟的工作中,吐出一个缓存文件,并通过 ajax 轮询所述缓存。

我经常做这种事情,但通常我会缓存查询(而不是整个视图)。在这种情况下,编写 SQL 以包含所需的所有内容需要很长时间,我宁愿将整个部分模板渲染到 delay_job 中。

......这就是乐趣开始的地方。我遇到了很多错误,尤其是与 form_helpers、设计身份验证等相关的错误。简而言之,有没有人对以下任何一个有任何建议:

  • 在延迟作业中呈现部分视图(或返回动作的呈现)的简单方法?
  • 实现上述目标的一种简单方法,无需写出一个令人费解的 SQL/ActiveRecord 查询是什么?

任何想法表示赞赏 - 非常感谢。

4

1 回答 1

2

好吧,以一种相对简单的方式渲染视图本身是可能的,看看这个教程

但是,我会研究代码和设置,以便能够回答以下问题:

  1. 是否可以优化系统以避免延迟渲染?检查您的数据库索引、使用查询和数据库设置可能会将您认为不可能的事情变为真实情况。

  2. 在延迟作业中收集数据,将其序列化为 json 并在浏览器端执行演示就足够了吗?通过这样做,如果您发现瓶颈并决定将处理移回 webapp,那么您就可以自行返回。

  3. 预计算(使用结构更简单的表)可能有帮助吗?您始终可以在后台填充这些表格,甚至可以使用触发器并让您的应用程序以直接的方式工作。

希望以上任何内容有所帮助:)

于 2012-11-10T01:32:50.870 回答