diff --git a/ecrire/inc_cron.php3 b/ecrire/inc_cron.php3 index a8f45d5a543beb22197bac99bf5586adee9f42e2..510de041f36ed816437b5f9549f9b805148671ad 100644 --- a/ecrire/inc_cron.php3 +++ b/ecrire/inc_cron.php3 @@ -68,15 +68,25 @@ function spip_cron($taches = array()) { // Quelle est la tache la plus urgente ? $tache = ''; + $tmin = $t; clearstatcache(); foreach ($taches as $nom => $periode) { $lock = _DIR_SESSIONS . $nom . '.lock'; $date_lock = @filemtime($lock); - if ($date_lock + $periode < $t) { - $t = $date_lock + $periode; + + if ($date_lock + $periode < $tmin) { + $tmin = $date_lock + $periode; $tache = $nom; $last = $date_lock; } + // debug : si la date du fichier est superieure a l'heure actuelle, + // c'est que le serveur a (ou a eu) des problemes de reglage horaire + // qui peuvent mettre en peril les taches cron : signaler dans le log + // (On laisse toutefois flotter sur une heure, pas la peine de s'exciter + // pour si peu) + else if ($date_lock > $t + 3600) + spip_log("Erreur de date du fichier $lock : $date_lock > $t !"); + } if (!$tache) return;