Ruby on rails Mongoid 5在日志中显示重复查询
使用Rails 4和Mongoid 5.0.1 我们的日志输出显示几乎所有查询都是重复的。有一段时间我假设它只是两倍的输出,但仔细看执行时间是不同的,这表明它实际上发送了两个请求Ruby on rails Mongoid 5在日志中显示重复查询,ruby-on-rails,mongodb,mongoid,Ruby On Rails,Mongodb,Mongoid,使用Rails 4和Mongoid 5.0.1 我们的日志输出显示几乎所有查询都是重复的。有一段时间我假设它只是两倍的输出,但仔细看执行时间是不同的,这表明它实际上发送了两个请求 d_562b2d81a54d7550ce000031.find | STARTED | {"find"=>"deals", "filter"=>{"contact_id"=>BSON::ObjectId('563bcb9da54d75116500010b')}} d_562b2d81a54d7550
d_562b2d81a54d7550ce000031.find | STARTED | {"find"=>"deals", "filter"=>{"contact_id"=>BSON::ObjectId('563bcb9da54d75116500010b')}}
d_562b2d81a54d7550ce000031.find | SUCCEEDED | 0.001186s
d_562b2d81a54d7550ce000031.find | STARTED | {"find"=>"deals", "filter"=>{"contact_id"=>BSON::ObjectId('563bcb9da54d75116500010b')}}
d_562b2d81a54d7550ce000031.find | SUCCEEDED | 0.0013s
这种行为似乎适用于大多数查询,但并非所有查询,有时特定查询只调用一次。当查询针对mongoid.yml中指定的数据库并且是web请求中的第一个数据库时,似乎会发生这种情况
这种行为发生在web请求中,但Rails控制台中的任何查询也会输出两行日志。它发生在“where”查询和“find”查询上
由于这是一款多租户应用程序,我们在大多数型号中都有以下功能:
store_in database: -> { Machine.current.database_name }
机器的集合(以及用户)存储在master_#{Rails.env}数据库中
但是,重复请求(在日志中)都是针对正确的数据库的,因此这可能是一种转移注意力的方法
当我们在Mongoid 3上时,这个问题从来都不明显,但是Mongoid 5的日志记录明显更好,所以这个问题可能也存在,但没有被注意到。实际上我怀疑是一个名为
bullet
的宝石导致了重复的日志。关闭它可以解决我的问题。您好,我也注意到了这一点,这方面的任何进展,我看到5个查询在执行UpdatePage时找到了相同的记录,没有-仍然看到2个查询