Tâches planifiées (crons)
Inventaire des crons actifs sur les trois plateformes. Toutes les heures sont en Europe/Paris sauf mention contraire.
article1-connect — aucun cron. Les synchros (RAMSESE, ONISEP) sont déclenchées manuellement via POST /api/v1/admin/etablissements/sync/ramsese.
inspire-v2
Fichier : api/src/core/cron-tasks/cron-tasks.ts
| Heure / fréquence | Fonction | Description | Charge |
|---|---|---|---|
| Toutes les 2 s | monitorMuxAssets |
Vérifie l'état des uploads vidéo Mux (UploadDone → Ready/Errored). Guard anti-overlap. | Faible — appels API Mux ponctuels |
| Toutes les 60 s | updateElasticDatabase |
Sync incrémentale Elasticsearch (Pistes, Articles, Users). | Moyenne — requêtes DB + ES |
| Tous les jours à 00h00 UTC | updateElasticDatabaseDaily |
Rebuild complet Elasticsearch (forceAll=true). |
Élevée — scan complet de la DB |
| Tous les jours à 19h00 | mailToNotifyNewMessage |
Notifie par mail les éclaireurs et lycéens ayant de nouveaux messages non lus. | Faible–Moyenne selon volume |
| Tous les jours à 20h00 | mailToNotifyAbsenceOfResponseFromEclaireur |
Rappel aux lycéens si leur éclaireur n'a pas répondu depuis 10 jours. | Faible |
| 1er août à 00h00 | resetIsProfileCompleteForNewSchoolYear |
Remet isProfileComplete = false pour tous les éclaireurs (rentrée scolaire). |
Très faible — une fois par an |
Les 21 tâches
testHeure*présentes dans le fichier sont des stubs vides utilisés pour vérifier la synchronisation de l'heure serveur.
dema1n
Fichier : back/src/binomes/services/cron-tasks.service.ts
La plupart des tâches ne s'exécutent que sur l'instance WORKER_SERVER=1, sauf les deux tâches LLM (WORKER_SERVER≠1). Le verrou Redis prévient les exécutions concurrentes sur plusieurs process PM2.
| Heure / fréquence | Fonction | Description | Charge |
|---|---|---|---|
| Toutes les 5 min | fillScoreEngagementJeune |
Calcule le score d'engagement des jeunes sans score (max 1 000/run). | Moyenne — requêtes DB |
| Toutes les min (:00) | extractPrecisionsBenevoles |
Extraction LLM des champs "précisions" bénévoles (max 20/run, verrou Redis). | Moyenne — appels LLM |
| Toutes les min (:30) | extractPrecisionsJeunes |
Extraction LLM des champs "précisions" jeunes (max 20/run, verrou Redis). | Moyenne — appels LLM |
| Toutes les 30 min (:02s) | prepareMessages |
Prépare et envoie les messages de suivi. | Faible–Moyenne |
| Toutes les heures (:00) | cancelBinomePremer |
Annule les binômes en statut "Premer" si le partenaire a activé preMailMer. |
Faible |
| Toutes les heures (:00) | checkState |
Met à jour les états des binômes (en attente → à annuler). | Faible |
| Toutes les heures (:30, 8h–20h) | sendCampaignsPaginatedMails |
Envoi des campagnes mail par lots de 100 (limité aux heures ouvrées). | Moyenne — envois SMTP |
| 17h00 | relanceFormation |
Rappel formation aux bénévoles. | Faible |
| 17h00 | relanceActivation |
Rappels d'activation (jeunes + bénévoles + emails "patience"). | Faible |
| 17h00 | relanceNonDispo |
Rappel aux jeunes marqués non-disponibles. | Faible |
| 17h00 | relanceFormationPostBinome |
Rappel formation aux bénévoles après formation d'un binôme. | Faible |
| 17h00 | relanceImpact |
Rappel questionnaire d'impact aux binômes. | Faible |
| 17h00 | relanceIndispoUntil |
Rappel aux bénévoles dont la période d'indisponibilité est terminée. | Faible |
| 17h30 | anonymizeStaleMentorOnboarding |
Anonymise les bénévoles bloqués en onboarding depuis >180 jours. | Très faible |
| 18h30 | checkMailsSentToday |
Log du nombre total de mails envoyés dans la journée (monitoring). | Négligeable |
| 23h30 | checkBenevolesInfos |
Vérification d'intégrité des données bénévoles. | Faible |
| 23h45 | notifyJeuneApte |
Notifie les jeunes nouvellement éligibles au matching. | Faible |