1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| # ================================================================== Début de la procédure
require_once "../../standards/classes/commande.class.php"; # Fonctions standard de contexte de commande
$UneCommande = new Commande();
list($Module,$Message) = $UneCommande->DebuterCommande(); # début de commande
set_time_limit(0); # script de durée illimitée
ignore_user_abort(); # la tâche se poursuit après la fermeture du navigateur
# =================================================================== Corps de la procédure
# ------------------------------------------------------------------- Boucle infinie
$Passage = 0;
$Periode = 60; # La précision des lancements de tâches est à la minute prés
while(1) { # --------------------------------------------------------------- Quelle heure ? (à la minute)
$Jour = $UneCommande->ConvertirJour(date("l"));
$Heure = str_pad(date("H"),2,"0",STR_PAD_LEFT);
$Minute = str_pad(date("i"),2,"0",STR_PAD_LEFT);
$T1 = microtime(true);
# --------------------------------------------------------------- Lecture des TACHES
require_once Niveau."exploitation/classes/tache.class.php"; # On en connait pas toutes les classes de Exploitation ?
$UneTache = new Tache();
$UneTache->Jour = $Jour; # Jour de la semaine en anglais
$UneTache->Heure = $Heure; # Heure précisée (si des zeros devant, pas de souci)
$UneTache->Minute = $Minute; # Minute précisée
list($Modules,$Procedures,$Parametres,$Dernieres,$Jours,$Heures,$Minutes,$Durees,$Resultats) = $UneTache->ListerTaches(); # ---------------------------------------------------------------- Recherche de la procédure à exécuter
echo "Réveil ".$Passage." ".date("H:i:s").br;
if (sizeof($Procedures) > 0) {
if (sizeof($Procedures) > 1) {
echo "Une seule tâche à la fois !! là, il y en a ".sizeof($Procedures).") ".date("Y-m-d H:i:s").br;
} else {
$Activation = true;
$Module = $Modules[0];
$Procedure = $Procedures[0];
$Parametre = $Parametres[0]; # ------------------------------------------------------- Lecture de la TACHE identifiée
$CetteTache = new Tache($Module,$Procedure,$Jour,$Heure,$Minute);
if ($CetteTache->_Erreur <> "") {
$Message = $CetteTache->_Erreur;
} else {
$Message = $CetteTache->Trouver();
if (!$CetteTache->_Existe) {
echo "Si elle n'existe pas (plus), c'est bien pourri !".br;
} else {
# ----------------------------------------------- Une seule chose à faire à la fois !!
ExecuterCommande($CetteTache,$Module,$Procedure,$Parametre,$Passage);
}
}
if ($Message <> "") {
echo $Message.br;
$Message = "";
}
}
}
# --------------------------------------------------------------- On s'endort pendant un certain temps (1mn normalement)
sleep($Periode);
$Passage++;
} |
Partager