Módulo: Mongo::Error::ReadWriteRetryable

Incluido en:
Auth::No autorizado, OperationFailure::Family
Definido en:
lib/mongo/error/lectura_escritura_reintentable.rb

Overview

Nota:

Aunque los métodos de este módulo son 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 es parte de la API pública.

Un módulo que encapsula la funcionalidad para indicar si los errores se pueden volver a intentar.

Desde:

  • 2.0.0

Colapso delresumen constante

ERRORES DE REINTENTACIÓN DE ESCRITURA =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Códigos de error y nombres de códigos que deberían provocar que se vuelva a intentar una escritura fallida.

Desde:

  • 2.0.0

[
  {:nombre_código => 'HostUnreachable', :código => 6},
  {:nombre_código => 'HostNoEncontrado', :código => 7},
  {:nombre_código => 'Tiempo de espera de red ', :código => 89},
  {:nombre_código => 'Apagado en progreso', :código => 91},
  {:nombre_código => 'Primario escalonado', :código => 189},
  {:nombre_código => 'ExceededTimeLimit', :código => 262},
  {:nombre_código => 'Excepción de socket', :código => 9001},
  {:nombre_código => 'No Maestro', :código => 10107},
  {:nombre_código => 'InterrumpidoAlApagar', :código => 11600},
  {:nombre_código => 'Interruptido por cambio de estado de representación', :código => 11602},
  {:nombre_código => 'NoPrimarioNoSecundarioOk ', :código => 13435},
  {:nombre_código => 'NoMaestroNiSecundario', :código => 13436},
].freeze
ESCRIBIR_REINTENTAR_MENSAJES =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

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

Desde:

  • 2.0.0

[
  'noamo',
  'Elnodo se está recuperando',
].freeze
RETRY_MESSAGES =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse 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

ESCRIBIR_REINTENTAR_MENSAJES + [
  'error de transporte',
  ' excepción de socket ',
  "nosepuede conectar",
  'Laconexión falló',
  'error al consultar',
  'No se pudo obtener el último error',
  'Intento de conexión fallido',
  'interrumpido al apagar',
  'conjunto deréplicas desconocido',
  'Error de dbclient al comunicarse con el servidor'
].freeze

Colapso del resumen del método de instancia

Detalles del método de instancia

#¿reintentable?verdadero, falso

Obsoleto.

Si el error es un error que se puede volver a intentar según la lógica de reintento de lectura heredada.

Devuelve:

  • (verdadero,falso)

Desde:

  • 2.0.0



81
82
83
84
# Archivo 'lib/mongo/error/read_write_retryable.rb', línea 81

def ¿reintentable?
  ¿Escritura_reintentable? ||
  Código.nil? && RETRY_MESSAGES.any?{ |m| Mensaje.¿incluir?(m) }
end

#¿write_retryable?verdadero, falso

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

Este método también lo utiliza la lógica de escritura reintentable heredada para determinar si un error se puede reintentar.

Devuelve:

  • (verdadero,falso)

Desde:

  • 2.0.0



93
94
95
96
# Archivo 'lib/mongo/error/read_write_retryable.rb', línea 93

def ¿Escritura_reintentable?
  ¿escribir_código_reintentable? ||
  Código.nil? && ESCRIBIR_REINTENTAR_MENSAJES.any? { |m| Mensaje.¿incluir?(m) }
end