Ruby on rails 内存使用率随着';标识映射已启用';在蒙哥德
我在内存为1GB的服务器上运行了一个带有Mongoid数据库后端的Rails应用程序。 数据库本身位于不同的数据库服务器上 每当我在一些集合上运行一个迭代的rake任务时,我注意到在htop中RAM的使用一直在增加,直到服务器变得无响应为止 仅当值为以下值时才会发生此情况:Ruby on rails 内存使用率随着';标识映射已启用';在蒙哥德,ruby-on-rails,mongoid,Ruby On Rails,Mongoid,我在内存为1GB的服务器上运行了一个带有Mongoid数据库后端的Rails应用程序。 数据库本身位于不同的数据库服务器上 每当我在一些集合上运行一个迭代的rake任务时,我注意到在htop中RAM的使用一直在增加,直到服务器变得无响应为止 仅当值为以下值时才会发生此情况: identity\u map\u enabled:true在mongoid.yml配置文件中设置 我正在使用 Mongoid gem 2.4.11。 我知道这是一个旧版本,最近的版本是4.0 考虑到系统范围的ORM更新是不可
identity\u map\u enabled:true
在mongoid.yml配置文件中设置
我正在使用
Mongoid gem 2.4.11。
我知道这是一个旧版本,最近的版本是4.0
考虑到系统范围的ORM更新是不可行的,我有没有办法修补现有代码来解决这个问题?文档明确说明在rake任务中禁用身份映射等 我创造了这个:
class MongoidUtils
def self.without_identity_map &block
if Mongoid.identity_map_enabled
Mongoid.identity_map_enabled = false
result = yield
Mongoid.identity_map_enabled = true
result
else
yield
end
end
end
然后这样使用:
MongoidUtils.without_identity_map do
#your code here
end
啊,我错过了关于它的文件,真是太丢脸了。谢谢你的回答!