Cases do Exception Handler
Last updated
Last updated
Os "Exception Handlers" podem ser utilizados para resolver diversas situações usuais. Aqui listamos algumas e suas possíveis soluções.
Muitas APIs implementam mecanismos de rate-limit que especificam uma quantidade máxima de requisições que podem ser executadas em um determinado período de tempo. Através de um Exception Handler podemos adequar o funcionamento de um fluxo para se manter dentro da taxa definida.
O fluxo abaixo acessa centenas de vezes uma API que está configurada para aceitar no máximo 10 requisições por minuto.
Configuramos um "Exception Handler" para esse fluxo com as seguintes características:
Nome: Too Many Requests
Disponibilidade do Handler: Fluxo
Exception Rule: 429 Too Many Requests
Nome: 429 Error Code
Retries: 2. A princípio apenas uma re-tentativa seria suficiente mas estabelecemos duas como margem de segurança.
Seconds: 60. A API em questão libera tokens a cada minuto, portanto aguardamos um minuto inteiro até reiniciarmos as requisições.
Notificação para syslog e local. É importante podermos auditar e acompanhar quando estamos excedendo as taxas de utilização de uma API
Mensagem: Too many requests - RETRY
Default Action
Notificação para syslog e local.
Mensagem: Too many requests - FATAL. Nesse caso podemos identificar que apesar da manipulação de exceção o erro persistiu.
Ação Final: Parar. Essa ação será tomada apenas se a estratégia de aguardar novos tokens falhar, indicando que existe alguma situação não prevista para a geração desse erro.
Essa estratégia garante a correta utilização da API se apenas uma execução desse fluxo ocorrer ao mesmo tempo. Para forçar essa situação você pode desabilitar as execuções concorrentes de fluxo conforme ilustrado abaixo.