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

posée 2 months ago242 vuesfr

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 ?

Diagnostic IA

Généré par IA. Ce n'est pas une réponse — la communauté ci-dessous le confirme ou le corrige. Vérifiez toujours avant de vous y fier.

posée 2 months ago

1 réponse

9
✓
✓ Réponse acceptée

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.

Connectez-vous pour dire si ça a marché.

answered 2 months ago

Sign in and verify your email to post an answer.