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 un tiempo de espera, o el tiempo de espera es 0 (significa ilimitado) devuelve nil.
- #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 ha establecido un tiempo de espera o el tiempo de espera es 0 (lo que significa ilimitado), devuelve nil.
- #remaining_timeout_sec! ⇒ Objeto privado
-
#timeout? ⇒ true | false
privado
Devuelve false si CSOT no está habilitado o si CSOT está configurado en 0 (significa ilimitado); de lo contrario, devuelve true.
-
#timeout_expired? ⇒ verdadero | falso
privado
Si el tiempo de espera para la operación expiró.
Detalles del Constructor
#initialize(sesión: nil, operation_timeouts: {}) ⇒ CsotTimeoutHolder
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.
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 = calculate_deadline(operation_timeouts, sesión) @operation_timeouts = operation_timeouts @timeout_sec = (@deadline - Utils.monotonic_time si @deadline) end |
Detalles de atributo de instancias
# plazo {:? objeto}(solo lectura)
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.
28 29 30 |
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 28 def fecha límite @deadline end |
#operation_timeouts ⇒ Object (solo lectura)
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.
28 29 30 |
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 28 def operation_timeouts @operation_timeouts end |
#timeout_sec ⇒ Object (solo lectura)
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.
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 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.
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, "La operación tardó más de #{tiempo_de_espera_segundos} segundos" end |
#csot? ⇒ true | false
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.
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 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.
Devuelve los milisegundos restantes del tiempo de espera establecido para la operación; si no se establece un tiempo de espera, o el tiempo de espera es 0 (significa ilimitado) devuelve nil.
58 59 60 61 62 63 |
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 58 def remaining_dtimeouts_ms Segundos = remaining_timeout_sec return nulo si Segundos.nil? (Segundos * 1_000).to_i end |
#remaining_timeout_ms! ⇒ 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.
65 66 67 68 |
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 65 def remaining_timeout_ms! verificar_tiempo_de_espera! remaining_dtimeouts_ms end |
#remaining_timeout_sec ⇒ Float | nil
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.
Devuelve los segundos restantes del tiempo de espera establecido para la operación; si no se ha establecido un tiempo de espera o el tiempo de espera es 0 (lo que significa ilimitado), devuelve nil.
44 45 46 47 48 |
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 44 def remaining_timeout_sec return nulo a menos que ¿tiempo agotado? fecha límite - Utils.monotonic_time end |
#remaining_timeout_sec! ⇒ 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.
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 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.
Devuelve false si CSOT no está habilitado o si CSOT está configurado en 0 (significa ilimitado); de lo contrario, devuelve true.
37 38 39 |
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 37 def ¿tiempo agotado? ![ nulo, 0 ].incluir?(@deadline) end |
#timeout_expired? ⇒ true | false
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.
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 ¿tiempo agotado? Utils.monotonic_time >= fecha límite else false end end |