Módulo: Mongo::Error::ReadWriteRetryable

Incluido en:
Auth::Unauthorized, OperationFailure::Family
Definido en:
lib/mongo/error/read_write_retryable.rb

Overview

Nota:

Aunque los métodos de este módulo forman parte de la API pública, el hecho de que estos métodos estén definidos en este módulo y no en las clases que incluyen este módulo no forma parte de la API pública.

Un módulo que encapsula la funcionalidad para indicar si los errores son reintetables.

Desde:

  • 2.0.0

Resumen de constantes colapsar

WRITE_RETRY_ERRORS =

Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.

Códigos de error y nombres de código que deberían dar lugar a que un intento fallido de guardado se vuelva a intentar.

Desde:

  • 2.0.0

[
  { code_name: 'HostUnreachable', código: 6 },
  { code_name: 'HostNotFound', código: 7 },
  { code_name: 'NetworkTimeout', código: 89 },
  { code_name: 'ApagadoEnProgreso', código: 91 },
  { code_name: 'PrimarioDescendido', código: 189 },
  { code_name: 'ExceededTimeLimit', código: 262 },
  { code_name: 'SocketException', código: 9001 },
  { code_name: 'NotMaster', código: 10_107 },
  { code_name: 'InterrumpidoDuranteApagado', código: 11_600 },
  { code_name: 'Interruptido por cambio de estado de representación', código: 11_602 },
  { code_name: 'NoPrimarioNoSecundarioOk', código: 13_435 },
  { code_name: 'NoEsPrincipalNiSecundario', código: 13_436 },
].freeze
WRITE_RETRY_MESSAGES =

Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.

Estos son mensajes de error mágicos que podrían indicar un cambio maestro.

Desde:

  • 2.0.0

[
  'no principal',
  'nodo se está recuperando',
].freeze
RETRY_MESSAGES =

Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.

Estos son mensajes de error mágicos que podrían indicar una reconfiguración del clúster detrás de un mongos.

Desde:

  • 2.0.0

WRITE_RETRY_MESSAGES + [
  'Error de transporte',
  'excepción de socket',
  "no se puede conectar",
  'conexión fallida',
  'error al consultar',
  'no se pudo obtener el último error',
  'intento de conexión fallido',
  'interrumpido durante el apagado',
  'unknown set de réplicas',
  'Error de dbclient al comunicarse con el servidor'
].freeze

Resumen del método de instancia colapsar

Detalles del método de instancia

#¿retryable?true, false

Obsoleto.

Si el error es un error que se puede reintentar según la lógica heredada de reintentos de lectura.

Devuelve:

  • (verdadero, falso)

Desde:

  • 2.0.0



78
79
80
81
# Archivo 'lib/mongo/error/read_write_retryable.rb', línea 78

def ¿posible de volver a intentar?
  write_retryable? ||
    (Código.nil? && RETRY_MESSAGES.any? { |m| mensaje.incluir?(m) })
end

#write_retryable?true, false

Indica si el error es reintentable según las especificaciones modernas de lecturas reintentables y escrituras reintentables.

Este método también es utilizado por la lógica legado de escrituras reintentares para determinar si un error es reintentarle.

Devuelve:

  • (verdadero, falso)

Desde:

  • 2.0.0



90
91
92
93
# Archivo 'lib/mongo/error/read_write_retryable.rb', línea 90

def write_retryable?
  write_retryable_code? ||
    (Código.nil? && WRITE_RETRY_MESSAGES.any? { |m| mensaje.incluir?(m) })
end