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

Incluido en:
OpMsgBase
Definido en:
lib/mongo/operación/shared/timed.rb

Overview

Este módulo es parte de una API privada. Deberías evitar usar este módulo si es posible, ya que puede ser removido o cambiado en el futuro.

Define el comportamiento de las operaciones que tienen el comportamiento de tiempo de espera por defecto descrito por la especificación de tiempos de espera de operaciones del lado del cliente (CSOT).

Resumen del método de instancia colapsar

Detalles del método de instancia

#apply_relevant_timeouts_to(spec, connection) ⇒ Hash

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.

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:

  • especificación (encriptada)

    La especificación a modificar

  • Conexión (Conexión)

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

Devuelve:

  • (encriptada)

    la especificación



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

def apply_relevant_timeouts_to(especificación, Conexión)
  con_tiempo_máximo(Conexión) hacer |max_time_sec|
    return especificación si max_time_sec.nil?
    return especificación si Conexión.Descripción.mongocryptd?

    especificación.tocar { especificación[Tiempo máximo en milisegundos (:maxTimeMS)] = (max_time_sec * 1_000).to_i }
  end
end

#with_max_time(connection) ⇒ Hash

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.

Un método asistente que calcula el tiempo de espera restante (en segundos) y lo cede al bloque asociado. Si no hay un tiempo de espera, devuelve nil. Si se agota el tiempo de espera, se lanza Mongo::Error::TimeoutError.

Parámetros:

  • Conexión (Conexión)

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

Devuelve:

  • (encriptada)

    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&.¿tiempo agotado?
    max_time_sec = context.remaining_timeout_sec - Conexión.Server.minimum_round_trip_time
    propagar mongo::Error::TimeoutError si max_time_sec <= 0

    rendimiento max_time_sec
  else
    rendimiento nulo
  end
end