Compartilhar via


RetryPolicy Classe

  • java.lang.Object
    • com.microsoft.azure.servicebus.primitives.RetryPolicy

public abstract class RetryPolicy

Representa uma abstração de uma política para repetir operações de mensagens quando uma exceção é encontrada. Algumas exceções encontradas por um remetente ou receptor podem ser transitórias, como ServerBusy, e a operação terá êxito se for repetida. Os clientes podem especificar uma política de repetição usando ConnectionStringBuilder a qual guia os remetentes e receptores para repetir automaticamente a operação com falha antes de lançar a exceção para o aplicativo cliente. Os usuários não devem implementar essa classe, em vez disso, devem usar uma das implementações fornecidas por meio #getDefault de ou #getNoRetry.

Resumo do Construtor

Modificador Construtor Description
protected RetryPolicy(String name)

Cria uma instância da Política de Repetiçãocom o nome fornecido.

Resumo do método

Modificador e tipo Método e descrição
static RetryPolicy getDefault()

Política de repetição que fornece intervalos de repetição exponencialmente crescentes com cada falha sucessiva.

Duration getNextRetryInterval(String clientId, Exception lastException, Duration remainingTime)

Obtém o intervalo após o qual a próximatentativa deve ser tentada, com base na última exceção encontrada e no tempo restante antes do tempo limite da operação.

static RetryPolicy getNoRetry()

Obtém uma política de repetição que não tenta novamente nenhuma operação, desabilitando efetivamente as novas tentativas.

protected int getRetryCount(String clientId)
void incrementRetryCount(String clientId)

Incrementa o número de tentativas sucessivas feitas por um cliente.

static boolean isRetryableException(Exception exception)

Determina se uma exceção é repetida ou não.

protected abstract Duration onGetNextRetryInterval(String clientId, Exception lastException, Duration remainingTime, int baseWaitTime)

Ajusta o intervalo após o qual a próximatentativa deve ser tentada, com base na última exceção encontrada, o tempo restante antes do tempo limite da operação e o tempo mínimo de espera antes de tentar novamente.

void resetRetryCount(String clientId)

Redefine o número de tentativas feitas por um cliente.

String toString()

Métodos herdados de java.lang.Object

Detalhes do construtor

RetryPolicy

protected RetryPolicy(String name)

Cria uma instância de RetryPolicy com o nome fornecido.

Parâmetros:

name - nome da política

Detalhes do método

getDefault

public static RetryPolicy getDefault()

Política de repetição que fornece intervalos de repetição exponencialmente crescentes com cada falha sucessiva. Essa política é adequada para uso usando a maioria dos aplicativos cliente e também é a política padrão se nenhuma política de repetição for especificada.

Retornos:

uma política de repetição que fornece intervalos de repetição exponencialmente crescentes

getNextRetryInterval

public Duration getNextRetryInterval(String clientId, Exception lastException, Duration remainingTime)

Obtém o intervalo após o qual nextRetry deve ser tentada, com base na última exceção encontrada e no tempo restante antes do tempo limite da operação.

Parâmetros:

clientId - ID do remetente, receptor ou objeto cliente que encontrou a exceção.
lastException - última exceção encontrada
remainingTime - remainingTime para tentar novamente antes do tempo limite da operação

Retornos:

duração após a qual a operação será repetida. Retorna nulo quando a operação não deve ser repetida.

getNoRetry

public static RetryPolicy getNoRetry()

Obtém uma política de repetição que não tenta novamente nenhuma operação, desabilitando efetivamente as novas tentativas. Os clientes podem usar essa política de repetição caso não queiram que nenhuma operação seja repetida automaticamente.

Retornos:

uma política de repetição que não repete nenhuma operação

getRetryCount

protected int getRetryCount(String clientId)

Parâmetros:

clientId

incrementRetryCount

public void incrementRetryCount(String clientId)

Incrementa o número de tentativas sucessivas feitas por um cliente.

Parâmetros:

clientId - id do cliente repetindo uma operação com falha

isRetryableException

public static boolean isRetryableException(Exception exception)

Determina se uma exceção é repetida ou não. Somente exceções transitórias devem ser repetidas.

Parâmetros:

exception - exceção encontrada por uma operação, a ser determinada se ela for repetida.

Retornos:

true se a exceção for repetida (como ServerBusy ou outra exceção transitória), caso contrário, retornará false

onGetNextRetryInterval

protected abstract Duration onGetNextRetryInterval(String clientId, Exception lastException, Duration remainingTime, int baseWaitTime)

Ajusta o intervalo após o qual nextRetry deve ser tentada, com base na última exceção encontrada, o tempo restante antes do tempo limite da operação e o tempo mínimo de espera antes de tentar novamente. Os clientes podem substituir esse método para especificar um tempo de espera com base na exceção encontrada.

Parâmetros:

clientId - ID do remetente, receptor ou objeto cliente que encontrou a exceção.
lastException - última exceção encontrada
remainingTime - remainingTime para tentar novamente antes do tempo limite da operação
baseWaitTime - tempo de espera mínimo determinado pela política de repetição base. Os métodos de substituição podem retornar um valor diferente.

Retornos:

duração após a qual a operação será repetida. Retorna nulo quando a operação não deve ser repetida

resetRetryCount

public void resetRetryCount(String clientId)

Redefine o número de tentativas feitas por um cliente. Esse método é chamado pelo cliente quando a operação repetida é bem-sucedida.

Parâmetros:

clientId - ID do cliente que acabou de repetir uma operação com falha e teve êxito.

toString

public String toString()

Substituições:

RetryPolicy.toString()

Aplica-se a