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
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.
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.
[ {: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.
[ '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.
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
- #repetível? ➤ verdadeiro, falso obsoleto Obsoleto.
-
#write_retryable? ➤ verdadeiro, falso
Se o erro é um erro repetível de acordo com as especificações atuais de leituras e gravações repetíveis.
Detalhes do método de instância
#repetível? ➤ true, false
Se o erro é um erro repetível de acordo com a lógica de repetição de leitura legado .
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| .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.
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| .incluir?(m) } end |