Retry, replay e desativação automática
Uma entrega que falha é tentada de novo sozinha, pelo cronograma, por cerca de 45 horas. Esta página é sobre o que você pode fazer além disso.
Retry: insistir numa Entrega
Seção intitulada “Retry: insistir numa Entrega”O retry coloca uma Entrega de volta na fila, para o mesmo endpoint e com o mesmo corpo.
curl -X POST https://api.notyfacil.com.br/v1/deliveries/dlv_01JB8Y3K7QF2V9D5WZ0XH4M1RC/retry \ -H "Authorization: Bearer $NOTYFACIL_KEY"Use quando o receptor estava fora do ar e voltou, e você não quer esperar a próxima tentativa do cronograma, ou quando o cronograma já esgotou.
| Situação da Entrega | Retry |
|---|---|
exhausted |
Volta para a fila. |
retrying |
Adianta a próxima tentativa para agora. |
cancelled |
Volta para a fila, se o endpoint estiver ativo. |
pending ou processing |
409: já está na fila. |
delivered |
409: já foi entregue. Para mandar de novo, use o replay. |
Com o endpoint desativado, o retry responde 422: religue o endpoint antes.
Replay: refazer o fan-out do Evento
Seção intitulada “Replay: refazer o fan-out do Evento”O replay cria Entregas novas para todos os endpoints inscritos no tipo agora.
curl -X POST https://api.notyfacil.com.br/v1/events/evt_01JB8XZQ4T9M2NKPWV3RYCF7HD/replay \ -H "Authorization: Bearer $NOTYFACIL_KEY"{ "event": "evt_01JB8XZQ4T9M2NKPWV3RYCF7HD", "deliveries": 3 }Use quando o fato precisa chegar de novo a todos (um receptor perdeu dados e pediu para reprocessar), ou quando um endpoint cadastrado depois do evento precisa recebê-lo.
As Entregas antigas ficam como estão, e cada Entrega do replay conta como entrega nova no uso do plano.
Qual usar
Seção intitulada “Qual usar”| A pergunta | A ação |
|---|---|
| Uma entrega para um endpoint falhou e o endpoint voltou | Retry |
| O cronograma esgotou para um endpoint | Retry |
| Um endpoint novo precisa de um evento antigo | Replay |
| Todos os receptores precisam do evento de novo | Replay |
Desativação automática
Seção intitulada “Desativação automática”Um endpoint que acumula 20 falhas seguidas, somando todas as entregas para ele, é desativado.
A contagem é do endpoint, não da entrega: 20 eventos diferentes falhando uma vez cada desativam
igual. Uma resposta 2xx no meio do caminho zera a contagem.
Quando isso acontece:
- o endpoint passa a
DisabledAutomaticallye deixa de receber; - as Entregas que estavam na fila para ele são canceladas quando chega a vez delas;
- quem cadastrou o endpoint recebe e-mail.
É proteção dos dois lados. O receptor fora do ar para de receber tráfego que não consegue atender, e as entregas param de gastar tentativas contra uma URL morta. Se continuassem, essas tentativas esgotariam o cronograma de eventos que chegariam bem se o receptor estivesse de pé.
Reativar
Seção intitulada “Reativar”Depois que o receptor voltar, religue o endpoint:
curl -X PATCH https://api.notyfacil.com.br/v1/endpoints/ep_01JB8Y1D6TQ4X8N2VK5HWZ3RFM \ -H "Authorization: Bearer $NOTYFACIL_KEY" \ -H "Content-Type: application/json" \ -d '{"status":"enabled"}'Religar zera a contagem de falhas seguidas, e o endpoint volta a receber os eventos publicados daqui para a frente. O que ficou para trás não volta sozinho: as Entregas canceladas ou esgotadas enquanto ele esteve desligado continuam como estão, e cada uma pode ser reenviada com retry. Para mandar um evento inteiro de novo, use o replay.
Confira antes com um teste do endpoint. Religar um receptor que ainda falha só leva a mais 20 falhas e a uma nova desativação.
O mesmo PATCH com "status":"disabled" desliga o endpoint à mão, para quando você sabe que o
receptor vai ficar fora do ar. Ele passa a DisabledManually, as Entregas na fila para ele são
canceladas quando chega a vez delas, e ele só volta quando alguém o religar.
Referência: reenviar uma entrega · refazer o fan-out de um evento