Módulo: Mongo::Operation::Timed Privado
- Incluido en:
- Base de mensajes de operación
- Definido en:
- lib/mongo/operación/shared/timed.rb
Overview
Este módulo forma parte de una API privada. Debe evitar su uso siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
Define el comportamiento de las operaciones que tienen el comportamiento de tiempo de espera por defecto descrito por la especificación de tiempos de espera de operaciones del lado del cliente (CSOT).
Resumen del método de instancia colapsar
-
#apply_relevant_timeouts_to(spec, conexión) ⇒ Hash
privado
Si hay un tiempo de espera activo (como se define en el contexto actual) y aún no ha expirado, añada :maxTimeMS a la especificación.
-
#with_max_time(connection) ⇒ Hash
privado
Un método asistente que calcula el tiempo de espera restante (en segundos) y lo cede al bloque asociado.
Detalles del método de instancia
#apply_relevant_timeouts_to(spec, connection) ⇒ Hash
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Si hay un tiempo de espera activo (como se define en el contexto actual) y aún no ha expirado, añada :maxTimeMS a la especificación.
22 23 24 25 26 27 28 29 |
# Archivo 'lib/mongo/operation/shared/timed.rb', línea 22 def apply_relevant_timeouts_to(especulación, Conexión) con_tiempo_máximo(Conexión) hacer |max_time_sec| return especulación si max_time_sec.nil? return especulación si Conexión.Descripción.mongocryptd? especulación.tocar { especulación[Tiempo máximo en milisegundos (:maxTimeMS)] = (max_time_sec * 1_000).to_i } end end |
#with_max_time(connection) ⇒ Hash
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Un método auxiliar que calcula el tiempo de espera restante (en segundos) y lo asigna al bloque asociado. Si no hay tiempo de espera, el resultado es nulo. Si el tiempo de espera ha expirado, genera Mongo::Error::TimeoutError.
40 41 42 43 44 45 46 47 48 49 |
# Archivo 'lib/mongo/operation/shared/timed.rb', línea 40 def con_tiempo_máximo(Conexión) si context&.¿se acabó el tiempo? max_time_sec = context.remaining_timeout_sec - Conexión.Server.tiempo mínimo de ida y vuelta propagar Mongo::Error::TimeoutError si max_time_sec <= 0 rendimiento max_time_sec else rendimiento nulo end end |