Clase: Mongo::Retryable::RetryPolicy Privada

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongo/retryable/retry_policy.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.

Encapsula la política de reintentos para la contrapresión del cliente con retroceso exponencial y variabilidad.

Se crea una instancia por cliente y se comparte entre todas las operaciones en ese cliente.

Desde:

  • 2.1.0

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Detalles del Constructor

#initialize(max_retries: Backpressure::DEFAULT_MAX_RETRIES) ⇒ RetryPolicy

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.

Crea una nueva política de reintento.

Parámetros:

  • max_retries (Integer) (por defecto: Backpressure::DEFAULT_MAX_RETRIES)

    El número máximo de intentos de reintento por sobrecarga. Por defecto, se usa Backpressure::DEFAULT_MAX_RETRIES.

Desde:

  • 2.1.0



20
21
22
# Archivo 'lib/mongo/retryable/retry_policy.rb', línea 20

def inicializar(max_retries: Contrapresión::DEFAULT_MAX_RETRIES)
  @max_retries = max_retries
end

Detalles de atributo de instancias

#max_retriesEntero (de 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.

Devuelve el número máximo de reintentos por sobrecarga.

Devuelve:

  • (Número entero)

    El número máximo de reintentos por sobrecarga.

Desde:

  • 2.1.0



14
15
16
# Archivo 'lib/mongo/retryable/retry_policy.rb', línea 14

def max_retries
  @max_retries
end

Detalles del método de instancia

#backoff_delay(attempt, jitter: rand) ⇒ Float

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.

Calcula el retraso de reintento para un intento de reintento determinado.

Parámetros:

  • intento (Número entero)

    El número de intento de reintento (con índice 1).

  • jitters (Flotante) (por defecto: rand)

    Un número flotante aleatorio en [0.0, 1.0).

Devuelve:

  • (Float)

    El retraso retroactivo en segundos.

Desde:

  • 2.1.0



30
31
32
# Archivo 'lib/mongo/retryable/retry_policy.rb', línea 30

def retraso_de_respaldo(intento, oscilación: rand)
  Contrapresión.retraso_de_respaldo(intento, oscilación: jitters)
end

#should_retry_overload?(intento, retraso, context: nil) ⇒ 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.

Determine si se debe intentar un reintento por sobrecarga.

Parámetros:

  • intento (Número entero)

    El número de intento de reintento (con índice 1).

  • retrasar (Float)

    El retraso retroactivo en segundos.

  • context (Mongo::Operation::Context | nil) (valor por defecto: nil)

    El contexto de la operación (para la verificación del plazo de CSOT).

Devuelve:

  • (true | false)

    Si el reintento debe continuar o no.

Desde:

  • 2.1.0



42
43
44
45
46
47
# Archivo 'lib/mongo/retryable/retry_policy.rb', línea 42

def should_retry_overload?(intento, retrasar, context: nulo)
  return false si intento > @max_retries
  return false si ¿supera_el_plazo?(retrasar, context)

  true
end