Clase: Mongo::Session::SessionPool Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Session::SessionPool
- Definido en:
- lib/mongo/session/session_pool.rb
Overview
Esta clase forma parte de una API privada. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.
Un grupo de sesiones del servidor.
Resumen del método de instancia colapsar
-
#Checkin(sesión) ⇒ Objeto
privado
Registrar una sesión de servidor en el pool.
-
#checkout ⇒ ServerSession
privado
Compruebe una sesión de servidor del pool.
-
#end_sessions ⇒ Objeto
privado
Finaliza todas las sesiones en el grupo enviando el comando endSessions al servidor.
-
#initialize(cluster) ⇒ SessionPool
constructor
privado
Inicializa un SessionPool.
-
#inspect ⇒ String
privado
Obtén una string formateada para usar en la inspección.
Detalles del Constructor
#initialize(cluster) ⇒ SessionPool
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Inicializa un SessionPool.
34 35 36 37 38 |
# Archivo 'lib/mongo/session/session_pool.rb', línea 34 def inicializar(clúster) @queue = [] @mutex = Mutex (exclusión mutua).Nuevo @cluster = clúster end |
Detalles del método de instancia
#checkin(sesión) ⇒ objeto
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Registrar una sesión de servidor en el pool.
79 80 81 82 83 84 85 86 |
# Archivo 'lib/mongo/session/session_pool.rb', línea 79 def checkin(sesión) propagar ArgumentError, 'la sesión no puede ser nula' si sesión.nil? @mutex.sincronizar hacer prune! @queue.unshift(sesión) si return_to_queue?(sesión) end end |
#checkout ⇒ ServerSession
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Compruebe una sesión de servidor del pool.
60 61 62 63 64 65 66 67 68 69 |
# Archivo 'lib/mongo/session/session_pool.rb', línea 60 def checkout @mutex.sincronizar hacer bucle hacer return ServerSession.Nuevo si @queue.¿vacío? sesión = @queue.turno return sesión a menos que a punto de caducar?(sesión) end end end |
#end_sessions ⇒ objeto
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Finaliza todas las sesiones en el grupo enviando el comando endSessions al servidor.
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# Archivo 'lib/mongo/session/session_pool.rb', línea 94 def end_sessions hasta @queue.¿vacío? Server = ServerSelector.Obtener(moda: :primary_preferred).select_server(@cluster) op = Operación::Comando.Nuevo( selector: { endSessions: @queue.turno(10_000).map(&:session_id), }, db_name: Database::ADMIN ) context = Operación::Context.Nuevo(opciones: { server_api: Server.[API del servidor], }) op.ejecutar(Server, context: context) end rescate mongo::Error, Error::AuthError end |
#inspect ⇒ String
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Obtén una string formateada para usar en la inspección.
48 49 50 |
# Archivo 'lib/mongo/session/session_pool.rb', línea 48 def inspeccionar "#<Mongo::Session::SessionPool:0x#{object_id} current_size=#{@queue.size}>" end |