Módulo: Mongo::Error::ReadWriteRetryable

Incluído em:
Auth::Un authorized, OperationFailure
Definido em:
build/ruby-driver-v2.19/lib/mongo/error/read_write_retryable.rb

Visão geral

Observação:

Embora os métodos deste módulo façam parte da API pública, o fato de esses métodos serem definidos neste módulo e não nas classes que incluem este módulo não faz parte da API pública.

Um módulo que encapsula a funcionalidade para indicar se os erros podem ser repetidos.

Desde:

  • 2.0.0

Colapsode resumo constante

WRITE_RETRY_ERRORS =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

Códigos de erro e nomes de código que devem resultar em uma nova tentativa de escrita com falha.

Desde:

  • 2.0.0

[
  {:code_name => 'HostUnreachable', :code => 6},
  {:code_name => 'HostNotFound', :code => 7},
  {:code_name => 'NetworkTimeout', :code => 89},
  {:code_name => 'ShutdownInProgress', :code => 91},
  {:code_name => 'PrimarySteppedDown', :code => 189},
  {:code_name => 'ExceededTimeLimit', :code => 262},
  {:code_name => 'SocketException', :code => 9001},
  {:code_name => 'NotMaster', :code => 10107},
  {:code_name => 'InterruptedAtShutdown', :code => 11600},
  {:code_name => 'InterruptedDueToReplStateChange', :code => 11602},
  {:code_name => 'NotPrimaryNoSecondaryOk', :code => 13435},
  {:code_name => 'NotMasterOrSecondary', :code => 13436},
].congelar
WRITE_RETRY_MSSAGES =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

Estas são mensagens de erro secretas que podem indicar uma alteração principal.

Desde:

  • 2.0.0

[
  'não mestre',
  ' onó está se recuperando',
].congelar
RETRY_MSSAGES =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

Essas são mensagens de erro Mágicas que podem indicar uma reconfiguração de cluster atrás de um mongos.

Desde:

  • 2.0.0

WRITE_RETRY_MSSAGES + [
  'erro de transporte',
  'exceção de soquete',
  "não consegue conectar",
  'conexão falhou',
  'query de erro',
  'não foi possível obter o último erro',
  'tentativa de conexão falhou',
  'interrompido no desligamento',
  'conjunto de réplicas desconhecido',
  'erro do dbclient ao se comunicar com o servidor'
].congelar

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#repetível?true, false

Obsoleto.

Se o erro é um erro repetível de acordo com a lógica de repetição de leitura legado .

Retorna:

  • (verdadeiro, falso)

Desde:

  • 2.0.0



81
82
83
84
# File 'build/ruby-driver-v2.19/lib/mongo/error/read_write_retryable.rb', linha 81

def repetível?
  write_retryable? ||
  código.nada? && RETRY_MESSAGES.algum?{ |m| mensagem.incluir?(m) }
end

#write_retryable?true, false

Se o erro é um erro repetível de acordo com as especificações atuais de leituras e gravações repetíveis.

Esse método também é usado pela lógica legado de gravações repetíveis para determinar se um erro é repetível.

Retorna:

  • (verdadeiro, falso)

Desde:

  • 2.0.0



93
94
95
96
# File 'build/ruby-driver-v2.19/lib/mongo/error/read_write_retryable.rb', linha 93

def write_retryable?
  write_retryable_code? ||
  código.nada? && WRITE_RETRY_MSSAGES.algum? { |m| mensagem.incluir?(m) }
end