Clase: Mongo::CsotTimeoutHolder Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::CsotTimeoutHolder
- Definido en:
- lib/mongo/csot_timeout_holder.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.
Esta clase almacena el tiempo de espera de la operación y proporciona los métodos auxiliares correspondientes.
Subclases conocidas directas
Resumen de atributos de la instancia colapsar
- #deadline ⇒ Object Solo lectura privado
- #operation_timeouts ⇒ Objeto Solo lectura privado
- #timeout_sec ⇒ Objeto Solo lectura privado
Resumen del método de instancia colapsar
-
#check_timeout! ⇒ Objeto
privado
Verifica si el tiempo de espera de la operación ha expirado y, en ese caso, genera un error apropiado.
-
#csot? ⇒ true | false
privado
Si CSOT está habilitado para la operación.
-
#initialize(session: nil, operation_timeouts: {}) ⇒ CsotTimeoutHolder
constructor
privado
Una nueva instancia de CsotTimeoutHolder.
-
#remaining_timeout_ms ⇒ Entero | nil
privado
Devuelve los milisegundos restantes del tiempo de espera establecido para la operación; si no se establece ningún tiempo de espera, o el tiempo de espera es 0 (significa ilimitado), devuelve nulo.
- #remaining_timeout_ms! ⇒ Objeto privado
-
#remaining_timeout_sec ⇒ Float | nil
privado
Devuelve los segundos restantes del tiempo de espera establecido para la operación; si no se establece ningún tiempo de espera, o el tiempo de espera es 0 (significa ilimitado), devuelve nulo.
- #¡tiempo_de_espera_restante_en_segundos! ⇒ Objeto privado
-
#timeout? ⇒ true | false
privado
Devuelve falso si CSOT no está habilitado o si CSOT está configurado en 0 (significa ilimitado); de lo contrario, es verdadero.
-
#timeout_expired? ⇒ verdadero | falso
privado
Si expiró el tiempo de espera para la operación.
Detalles del constructor
#initialize(sesión: nil, operation_timeouts: {}) ⇒ CsotTimeoutHolder
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve una nueva instancia de CsotTimeoutHolder.
22 23 24 25 26 |
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 22 def inicializar(sesión: nulo, operation_timeouts: {}) @deadline = calcular_fecha_límite(tiempos de espera de operación, sesión) @operation_timeouts = tiempos de espera de operación @timeout_sec = (@deadline - Utils.monotonic_time si @deadline) end |
Detalles de los atributos de instancia
#fecha límite ⇒ Objeto (solo lectura)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
28 29 30 |
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 28 def fecha límite @deadline end |
#operation_timeouts ⇒ Objeto (solo lectura)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
28 29 30 |
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 28 def tiempos de espera de operación @operation_timeouts end |
#timeout_sec ⇒ Objeto (solo lectura)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
28 29 30 |
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 28 def tiempo_límite_seg @timeout_sec end |
Detalles del método de instancia
#check_timeout! ⇒ Objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Verifica si el tiempo de espera de la operación ha expirado y, en ese caso, genera un error apropiado.
84 85 86 87 88 |
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 84 def verificar_tiempo_de_espera! return a menos que timeout_expired? propagar Error::TimeoutError, "Laoperación tardó más de #{timeout_sec} segundos" end |
#csot? ⇒ true | false
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve si CSOT está habilitado para la operación.
31 32 33 |
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 31 def csot? !fecha límite.nil? end |
#remaining_timeout_ms ⇒ Integer | nil
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve los milisegundos restantes del tiempo de espera establecido para la operación; si no se establece ningún tiempo de espera, o el tiempo de espera es 0 (significa ilimitado), devuelve nulo.
58 59 60 61 62 63 |
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 58 def tiempo de espera restante ms Segundos = remaining_timeout_sec return nulo si Segundos.nil? (Segundos * 1_000).to_i end |
#remaining_timeout_ms! ⇒ objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
65 66 67 68 |
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 65 def ¡tiempo de espera restante_ms! verificar_tiempo_de_espera! tiempo de espera restante ms end |
#remaining_timeout_sec ⇒ Float | nil
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve los segundos restantes del tiempo de espera establecido para la operación; si no se establece ningún tiempo de espera, o el tiempo de espera es 0 (significa ilimitado), devuelve nulo.
44 45 46 47 48 |
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 44 def remaining_timeout_sec return nulo a menos que ¿se acabó el tiempo? fecha límite - Utils.monotonic_time end |
#remaining_timeout_sec! ⇒ objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
50 51 52 53 |
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 50 def remaining_timeout_sec! verificar_tiempo_de_espera! remaining_timeout_sec end |
#¿timeout? ⇒ true | false
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve falso si CSOT no está habilitado o si CSOT está configurado en 0 (significa ilimitado); de lo contrario, es verdadero.
37 38 39 |
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 37 def ¿se acabó el tiempo? ![ nulo, 0 ].incluir?(@deadline) end |
#¿tiempo de espera expirado? ⇒ verdadero | falso
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve si expiró el tiempo de espera para la operación. Si no se ha configurado tiempo de espera, este método retorna falso.
72 73 74 75 76 77 78 |
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 72 def timeout_expired? si ¿se acabó el tiempo? Utils.monotonic_time >= fecha límite else false end end |