gpt4 book ai didi

ruby-on-rails - 缓存在 rake 任务中的 ActiveRecord 模型?

转载 作者:行者123 更新时间:2023-12-03 16:09:00 24 4
gpt4 key购买 nike

我知道在 rails 2.3.2 ActiveRecord 查询被缓存,即您可能会在开发/生产日志中看到一些内容:

CACHE (0.0ms)   SELECT * FROM `users` WHERE `users`.`id` = 1

我想知道相同的原则是否适用于 rake 任务。

我有一个 rake 任务,它将查询很多不同的模型,我想知道我是否应该实现自己的缓存,或者默认情况下是否包含此行为。

另外,有没有办法查看在 rake 任务期间执行的 sql 查询?类似于开发/生产日志

最佳答案

默认情况下,不会为 rake 任务启用 SQL 缓存。您可以将代码包装在缓存块中,如下所示:

task :foobar => :environment do
ActiveRecord::Base.connection.cache do
User.find 1 # Will hit the db
User.find 1 # Will hit the cache
end
end

这本质上是 Rails 为 Controller 操作所做的。请注意,缓存使用内存,而 rake 任务倾向于处理大量数据,这可能会给您带来问题。您可以使用 uncached 选择性地退出缓存部分代码。

关于ruby-on-rails - 缓存在 rake 任务中的 ActiveRecord 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/880482/

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