Módulo: Mongo::Operation::Timed Privado

Incluido en:
Base de mensajes de operación
Definido en:
lib/mongo/operación/compartido/temporizado.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 predeterminado descrito por la especificación de tiempos de espera de operaciones del lado del cliente (CSOT).

Colapso del resumen del método de instancia

Detalles del método de instancia

#apply_relevant_timeouts_to(especificación, conexión) ⇒ 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.

Parámetros:

  • especulación (Hash)

    La especificación a modificar

  • conexión (Conexión)

    La conexión que se utilizará para ejecutar la operación.

Devuelve:

  • (Hash)

    la especificación



22
23
24
25
26
27
28
29
# Archivo 'lib/mongo/operation/shared/timed.rb', línea 22

def aplicar_tiempos_de_espera_relevantes_a(especulación, conexión)
  con_tiempo_máximo(conexión) hacer |tiempo máximo en segundos|
    return especulación Si tiempo máximo en segundos.nil?
    return especulación Si conexión.Descripción.mongocryptd?

    especulación.grifo { especulación[:tiempo máximo MS] = (tiempo máximo en segundos * 1_000).to_i }
  end
end

#with_max_time(conexión) ⇒ 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.

Parámetros:

  • conexión (Conexión)

    La conexión que se utilizará para ejecutar la operación.

Devuelve:

  • (Hash)

    el resultado de ceder al bloque (que debe ser un Hash)



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?
    tiempo máximo en segundos = context.remaining_timeout_sec - conexión.Server.tiempo mínimo de ida y vuelta
    propagar Mongo::Error::Error de tiempo de espera Si tiempo máximo en segundos < = 0

    rendimiento tiempo máximo en segundos
  else
    rendimiento nulo
  end
end