Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 内存使用率随着';标识映射已启用';在蒙哥德_Ruby On Rails_Mongoid - Fatal编程技术网

Ruby on rails 内存使用率随着';标识映射已启用';在蒙哥德

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更新是不可

我在内存为1GB的服务器上运行了一个带有Mongoid数据库后端的Rails应用程序。 数据库本身位于不同的数据库服务器上

每当我在一些集合上运行一个迭代的rake任务时,我注意到在htop中RAM的使用一直在增加,直到服务器变得无响应为止

仅当值为以下值时才会发生此情况:

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

啊,我错过了关于它的文件,真是太丢脸了。谢谢你的回答!