Checkpoint: Correction du système d'envoi automatique des rappels :
1. Ajout de la vérification de l'heure configurée avant l'envoi (tolérance de 20 minutes) 2. Réduction de l'intervalle du scheduler de 1 heure à 15 minutes pour plus de précision 3. Ajout de logs détaillés pour le débogage 4. Les rappels sont maintenant envoyés à l'heure exacte configurée (ex: 13h51)
This commit is contained in:
@@ -45,6 +45,23 @@ async function processRappel(rappel: any) {
|
||||
if (!db) return;
|
||||
|
||||
try {
|
||||
// Vérifier si l'heure actuelle correspond à l'heure configurée du rappel
|
||||
const maintenant = new Date();
|
||||
const heureActuelle = maintenant.getHours();
|
||||
const minuteActuelle = maintenant.getMinutes();
|
||||
|
||||
// Parser l'heure configurée (format "HH:MM")
|
||||
const [heureRappel, minuteRappel] = (rappel.heure || "09:00").split(":").map(Number);
|
||||
|
||||
// Vérifier si on est dans la bonne heure (avec une tolérance de 20 minutes)
|
||||
const diffMinutes = Math.abs((heureActuelle * 60 + minuteActuelle) - (heureRappel * 60 + minuteRappel));
|
||||
if (diffMinutes > 20) {
|
||||
console.log(`[Rappels] Heure actuelle ${heureActuelle}:${minuteActuelle.toString().padStart(2, '0')} ne correspond pas à l'heure configurée ${rappel.heure} (différence: ${diffMinutes} minutes) - rappel ignoré`);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`[Rappels] Heure actuelle ${heureActuelle}:${minuteActuelle.toString().padStart(2, '0')} correspond à l'heure configurée ${rappel.heure} - traitement du rappel`);
|
||||
|
||||
// Calculer la date cible selon le timing (pré ou post-formation)
|
||||
const dateCible = new Date();
|
||||
if (rappel.timing === 'pre_formation') {
|
||||
@@ -263,11 +280,11 @@ export function initRappelScheduler() {
|
||||
processRappelsAutomatiques();
|
||||
processRemerciementsAutomatiques();
|
||||
|
||||
// Puis exécuter toutes les heures
|
||||
// Puis exécuter toutes les 15 minutes
|
||||
setInterval(() => {
|
||||
processRappelsAutomatiques();
|
||||
processRemerciementsAutomatiques();
|
||||
}, 60 * 60 * 1000); // 1 heure en millisecondes
|
||||
}, 15 * 60 * 1000); // 15 minutes en millisecondes
|
||||
|
||||
console.log("[Rappels] Scheduler initialisé - vérification toutes les heures (rappels + remerciements)");
|
||||
console.log("[Rappels] Scheduler initialisé - vérification toutes les 15 minutes (rappels + remerciements)");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user