ReviewPilot
14 PRs revisados hoje · 32 achados · 8 críticos evitados antes do merge
PRs na semana
63
+12% vs anterior
Achados críticos
8
19 avisos · 5 sugestões
Tempo médio
2m 41s
por review
Taxa de aprovação
71%
sem retrabalho
Fila de revisão
Achados por categoria
- Segurança11
- Performance8
- Bug9
- Estilo4
feat: retry na fila de webhooks
toolzz/api-core · feat/webhook-retry · src/queue/webhook-dispatcher.ts
- 4141
export async function dispatchWebhook(event: WebhookEvent) { - 42-
await fetch(event.url, { method: 'POST', body: JSON.stringify(event.payload) }); - 42+
const maxRetries = 5; - 43+
for (let attempt = 0; attempt <= maxRetries; attempt++) {CríticoRetry sem backoff exponencialDelay fixo de 1s com 5 tentativas pode derrubar o endpoint de destino em cascata. Use backoff exponencial com jitter (ex.: 2^attempt * 500ms).
- 44+
const res = await fetch(event.url, { - 45+
method: 'POST', - 46+
body: JSON.stringify(event.payload), - 47+
});AvisoFalta header Content-TypeO fetch envia JSON sem 'Content-Type: application/json'. Receptores estritos vão rejeitar com 415.
- 48+
if (res.ok) return;SugestãoRegistrar tentativa falhaConsidere logar status e attempt quando res.ok for falso, para facilitar debug de entregas perdidas.
- 49+
await sleep(1000); - 50+
} - 4351
}