Clase: Mongo::CsotTimeoutHolder Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongo/csot_timeout_holder.rb

Overview

Esta clase forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Esta clase almacena el tiempo de espera de la operación y proporciona los métodos auxiliares correspondientes.

Subclases conocidas directas

Operación::Contexto

Colapso delresumen de atributos de instancia

Colapso del resumen del método de instancia

Detalles del constructor

#inicializar(sesión: nula, tiempos de espera de operación: {}) ⇒ 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, tiempos de espera de operación: {})
  @fecha límite = calcular_fecha_límite(tiempos de espera de operación, sesión)
  @tiempos_de_espera_de_operación = tiempos de espera de operación
  @tiempo de espera_segundo = (@fecha límite - Utils.monotonic_time Si @fecha límite)
end

Detalles de los atributos de instancia

#fecha límiteObjeto (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 tope
  @fecha límite
end

#operation_timeoutsObjeto (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
  @tiempos_de_espera_de_operación
end

#timeout_secObjeto (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 de espera_seg
  @tiempo de espera_segundo
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.

Comprueba si el tiempo de espera de la operación expiró y genera un error apropiado si es así.

Aumentos:



84
85
86
87
88
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 84

def ¡Tiempo de espera de verificación!
  return a no ser que ¿tiempo de espera_expirado?

  propagar Error::Error de tiempo de espera, "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.

Devuelve:

  • (verdadero | falso)

    Si CSOT está habilitado para la operación



31
32
33
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 31

def csot?
  !fecha tope.nil?
end

#tiempo_de_espera_restante_msEntero | nulo

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.

Devuelve:

  • (Integer | nil)

    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

#¡tiempo_de_espera_restante_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!
  ¡Tiempo de espera de verificación!
  tiempo de espera restante ms
end

#tiempo_de_espera_restante_segFlotante | nulo

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.

Devuelve:

  • (Float | nil)

    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 no ser que ¿se acabó el tiempo?

  fecha tope - Utils.monotonic_time
end

#¡tiempo_de_espera_restante_en_segundos!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 ¡tiempo de espera restante en segundos!
  ¡Tiempo de espera de verificación!
  remaining_timeout_sec
end

#¿tiempo de espera?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 falso si CSOT no está habilitado o si CSOT está configurado en 0 (significa ilimitado); de lo contrario, es verdadero.

Devuelve:

  • (verdadero | falso)

    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?(@fecha límite)
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.

Indica si el tiempo de espera de la operación expiró. Si no se establece ningún tiempo de espera, este método devuelve falso.

Devuelve:

  • (verdadero | falso)

    Si el tiempo de espera de la operación expiró. Si no se establece ningún tiempo de espera, este método devuelve falso.



72
73
74
75
76
77
78
# Archivo 'lib/mongo/csot_timeout_holder.rb', línea 72

def ¿tiempo de espera_expirado?
  Si ¿se acabó el tiempo?
    Utils.monotonic_time >= fecha tope
  else
    false
  end
end