Node.js : comment exécuter une tâche planifiée (cron) chaque nuit ?

asked 2 months ago239 viewsfr

5

Je dois envoyer un récapitulatif par e-mail chaque nuit à 2h. J'ai vu node-cron, mais j'ai plusieurs instances de mon serveur. Risque de doublons ?

AI diagnosis

AI-generated. Not an answer — the community below confirms or corrects it. Always verify before relying on it.

asked 2 months ago

1 Answer

9
✓
✓ Accepted answer

Oui : avec node-cron dans ton serveur web, chaque instance exécutera la tâche, donc doublons garantis.

Options :

1. Cron externe (recommandé) : un planificateur appelle un endpoint protégé ou lance un script une seule fois. Ça peut être le cron Linux, un cron de Kubernetes (CronJob), GitHub Actions schedule, ou le cron de ton hébergeur (Vercel Cron, Render…).

0 2 * * * curl -fsS -H "Authorization: Bearer $CRON_SECRET" https://api.example.com/cron/digest

2. File de jobs avec planification (BullMQ *repeatable jobs*) : Redis garantit qu'un seul worker prend le job.

3. Verrou en base : pg_try_advisory_lock dans PostgreSQL. L'instance qui obtient le verrou exécute, les autres sortent.

Dans tous les cas, rends la tâche idempotente, en enregistrant par exemple « digest envoyé pour le 2026-09-26 », pour qu'un double déclenchement soit sans effet.

Sign in to tell others whether this worked.

answered 2 months ago

Sign in and verify your email to post an answer.