Classe: Mongo::Retryable::RetryPolicy Private

Herda:
Objeto
  • Objeto
mostrar tudo
Definido em:
lib/mongo/retryable/retry_policy.rb

Visão geral

Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.

Encapsula a política de repetição para backpressure do cliente com backoff e jitter exponenciais.

Uma instância é criada por cliente e compartilhada entre todas as operações desse cliente.

Desde:

  • 2.1.0

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de instância

Detalhes do construtor

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

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Crie uma nova política de novas tentativas.

Parâmetros:

  • max_retry (Inteiro) (padrão para: Backpressure::DEFAULT_MAX_RETRIES)

    O número máximo de tentativas de repetição de sobrecarga. O padrão é Backpressure::DEFAULT_MAX_RETRIES.

Desde:

  • 2.1.0



20
21
22
# arquivo 'lib/mongo/retryable/retry_policy.rb', linha 20

def inicializar(max_retry: Contrapressão::DEFAULT_MAX_RETRIES)
  @max_retries = max_retry
end

Detalhes do atributo da instância

#max_retryInteiro (somente leitura)

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna o número máximo de tentativas de sobrecarga.

Retorna:

  • (Inteiro)

    O número máximo de tentativas de sobrecarga.

Desde:

  • 2.1.0



14
15
16
# arquivo 'lib/mongo/retryable/retry_policy.rb', linha 14

def max_retry
  @max_retries
end

Detalhes do método de instância

#backoff_delay(attempt, jitter: random) ➤ Flutuante

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Calcule o atraso de backoff para uma determinada tentativa de repetição.

Parâmetros:

  • tentar (Inteiro)

    O número da tentativa de repetição (1índice).

  • tique-taque (Flutuante) (padrão para: random)

    Uma flutuação aleatória em [0.0, 1.0).

Retorna:

  • (Flutuante)

    O atraso de backoff em segundos.

Desde:

  • 2.1.0



30
31
32
# arquivo 'lib/mongo/retryable/retry_policy.rb', linha 30

def backoff_delay(tentar, jitter: random)
  Contrapressão.backoff_delay(tentar, jitter: tique-taque)
end

#should_retry_overload?(tentativa, atraso, contexto: nil) ⇒ true | false

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Determine se uma nova tentativa de sobrecarga deve ser tentada.

Parâmetros:

  • tentar (Inteiro)

    O número da tentativa de repetição (1índice).

  • atrasar (Flutuante)

    O atraso de backoff em segundos.

  • Contexto (Mongo::Operação::Context | nil) (padrão para: nil)

    O contexto da operação (para verificação de prazo do CSOT).

Retorna:

  • (verdadeiro | falso)

    Se a nova tentativa deve continuar.

Desde:

  • 2.1.0



42
43
44
45
46
47
# arquivo 'lib/mongo/retryable/retry_policy.rb', linha 42

def should_retry_overload?(tentar, atrasar, contexto: nada)
  Método false se tentar > @max_retries
  Método false se excede_deadline?(atrasar, Contexto)

  true
end