Implementar novas tentativas com backoff exponencial

Gorjeta

Este conteúdo é um trecho do eBook, .NET Microservices Architecture for Containerized .NET Applications, disponível no .NET Docs ou como um PDF para download gratuito que pode ser lido offline.

.NET Microservices Architecture for Containerized .NET Applications eBook cover thumbnail.

Repetições com backoff exponencial é uma técnica que repete uma operação, com um tempo de espera exponencialmente crescente, até que uma contagem máxima de tentativas tenha sido atingida (o backoff exponencial). Essa técnica abraça o fato de que os recursos de nuvem podem estar intermitentemente indisponíveis por mais do que alguns segundos por qualquer motivo. Por exemplo, um orquestrador pode estar movendo um contêiner para outro nó em um cluster para balanceamento de carga. Durante esse período, algumas solicitações podem falhar. Outro exemplo pode ser um banco de dados como o SQL Azure, onde um banco de dados pode ser movido para outro servidor para balanceamento de carga, fazendo com que o banco de dados fique indisponível por alguns segundos.

Há muitas abordagens para implementar a lógica de tentativas com backoff exponencial.