gpt4 book ai didi

ruby-on-rails - Rails 中缓存初始化器应该放在哪里?

转载 作者:行者123 更新时间:2023-12-02 05:07:20 25 4
gpt4 key购买 nike

我正在尝试优化我的应用程序并在应用程序启动时将某些内容加载到 Rails 缓存(最终是 memcached)中。本质上,我的数据库中有一些表仅出于标准化目的而存在并且很少更改。当它们发生变化时,我可以处理更新缓存的逻辑。

我应该在哪里编写“初始化程序”来读取这些不同的模型并将它们加载到缓存中?我尝试编写传统的初始化程序,但它在我的模型实际存在之前运行...我本质上需要加载所有模型和内容,然后创建缓存,然后运行应用程序。我怎样才能进入中间状态?

最佳答案

我可以将此代码放入 lib 目录中的文件中并首先需要模型文件,或者直接放入模型文件中,以便在定义模型后运行初始化:

class NormalizedTable
...
end

CacheInitializer.fill_cache_with :normalized_table

其中 CacheInitializer#fill_cache_with 是在初始化程序或 lib 目录中定义的。我还建议您在后台运行这些函数,例如在延迟作业中。如果您每次加载 Rails 应用程序时都运行此代码,它会减慢启动过程,并且数据可能没有必要始终位于缓存中 - 即,您的应用程序可以在填充缓存时使用数据库.

关于ruby-on-rails - Rails 中缓存初始化器应该放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5059588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com