Resilience: retry logic, graceful shutdown, SO_REUSEADDR, LoadDaemon ThrottleInterval
- whatsappApi.js: exponential backoff (3 retries) voor 5xx en connectiefouten op sendTextMessage en sendImageMessage - index.js: SO_REUSEADDR port binding, EADDRINUSE retry, graceful shutdown (SIGTERM/SIGINT) - README.md: documentatie resilience maatregelen bijgewerkt - LoadDaemon plist: ThrottleInterval=10 tegen restart-loops
This commit is contained in:
parent
f46889956b
commit
2be27f70f1
4 changed files with 120 additions and 30 deletions
|
|
@ -152,8 +152,11 @@ Bij elke interactie met de groep controleert de bot of het pinned bericht nog be
|
|||
## Foutafhandeling
|
||||
|
||||
- **Ongeldig dienstnummer**: de bot stuurt een melding terug naar de afzender
|
||||
- **Fout bij verzenden PNG**: de admin krijgt een WhatsApp melding
|
||||
- **Webhook fout**: wordt gelogd in PM2 logs
|
||||
- **Fout bij verzenden tekst/PNG**: maximaal 3 pogingen met exponential backoff (1s, 2s, 4s) voor 5xx HTTP-fouten en connectieproblemen (ECONNRESET, ECONNREFUSED, ETIMEDOUT). Bij definitieve fout krijgt de admin een WhatsApp-melding.
|
||||
- **EADDRINUSE (poort 3002 in gebruik)**: de server wacht 5 seconden en herhaalt de bind-poging, met `SO_REUSEADDR` om TIME_WAIT te omzeilen
|
||||
- **Graceful shutdown**: de server handelt SIGTERM en SIGINT af door actieve connecties netjes te sluiten (10s timeout)
|
||||
- **Restart-loop preventie**: de LaunchDaemon heeft `ThrottleInterval=10` — maximaal 1 herstart per 10 seconden
|
||||
- **Webhook fout**: wordt gelogd in de logs
|
||||
|
||||
## Spam protectie
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue