请求期间在轨道中缓存



我遇到了一种情况,我想缓存来自静态方法的信息,因为它被调用了很多次。

  • 这些信息只在请求的持续时间内有效,所以我不想使用Rails缓存。(设置为Redis,它做更多的永久缓存(

  • 我也不能轻易向任何其他合理的所有者夸大这一点。(没有,这是一个交叉关注的情况(

我能想到的唯一方法是使用RequestStore,但它似乎是一个非常低级的解决方案。这里还有什么可以在Rails级别上集成的吗?

我为此使用的解决方案是ActiveSupport::CurrentAttributes。您可以在上面存储数据,这些数据将在每次新请求时重置。尽管要意识到,正如你所期望的那样,随之而来的是全局变量的大多数负面影响。

如果你能做到的话,找到一个合适的主人并把它传下去是更好的选择。

最新更新