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. 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

Operación::Contexto

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

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_timeoutsObject (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_secObject (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.

Aumenta:



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.

Devuelve:

  • (true | false)

    Si CSOT está activado 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_msInteger | 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.

Devuelve:

  • (Integer | nil)

    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_secFloat | 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.

Devuelve:

  • (Float | nil)

    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.

Devuelve:

  • (true | false)

    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.

Devuelve:

  • (true | false)

    Si el tiempo de espera para la operación expiró. 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