Sha256: b1faaed85ab1e48bd02effda4c99fb4c4e5216124026acbf3f126248f10c498e
Contents?: true
Size: 982 Bytes
Versions: 1
Compression:
Stored size: 982 Bytes
Contents
# -*- coding: utf-8 -*- require 'tengine_core' require 'mongoid' require 'mongoid/version' require 'mongoid/cursor' if Mongoid::VERSION < "3.0.0" class Mongoid::Cursor # https://github.com/mongoid/mongoid/pull/1609 def each retry_on_connection_failure do while document = cursor.next yield Mongoid::Factory.from_db(klass, document) end end end end module Mongoid::Collections::Retry # https://github.com/mongoid/mongoid/pull/1739 # Mongoid 2.3.x needs additional fix def retry_on_connection_failure retries = 0 begin yield rescue Mongo::ConnectionFailure, Mongo::OperationTimeout, Mongo::OperationFailure => ex raise unless ex.class == Mongo::OperationFailure and ex.message !~ /not master/ retries += 1 raise if retries > Mongoid.max_retries_on_connection_failure Kernel.sleep(0.5) log_retry retries retry end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tengine_core-0.5.37 | lib/tengine/core/mongoid_fix.rb |