Cases do Exception Handler
Os "Exception Handlers" podem ser utilizados para resolver diversas situações usuais. Aqui listamos algumas e suas possíveis soluções.
Too Many Request - Status Code 429
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.

Last updated