[php5] taskscheduler, un petit planificateur de tâche en php ...

Soyez le premier à donner votre avis sur cette source.

Vue 8 531 fois - Téléchargée 516 fois

Description

Salut à tous,
J'ai codé cette classe pour résoudre le problème suivant : imaginons que nous ayons un script dont le but est de vérifier la validité des entrées contenues dans une base de données. Le soucis, c'est que l'exécution du script est longue et du coup, le fait de l'exécuter à chaque rafraichissement ralenti considérablement l'affichage.
Du coup, j'ai crée une classe qui permet de configurer et d'automatiser le lancement de tâches à intervalle régulier. Les tâches en question sont en fait de simples classes qui doivent posséder la méthode statique run(). Le nom des tâches à lancer et leur intervalle d'exécution se trouvent dans le fichier de configuration Calendar.conf.

Source / Exemple :


<?php
/* -------------------- */
   include './Task.interface.php';
   include './TaskScheduler.class.php';
   include './Spoutnik.class.php';
   include './Delegate.class.php';
/* -------------------- */
// Exemple de tâche à exécuter, qui va ajouter dans un fichier de log le texte "Bip ! " avec la date associée.
   class Spoutnik implements Task {
      public static function run() {
         $resFile = fopen('Spoutnik.log', 'a+');
         fputs($resFile, '[' . time() . '] Bip ! ' . "\n");
         fclose($resFile);
      }
   }
/* -------------------- */
// Il faut alors ajouter la ligne suivante dans le fichier Calendar.conf pour que la tâche soit lancée toutes les heures : 
//    Spoutnik.ExecutionPeriod=3600
/* -------------------- */
// Enfin, il faut insérer ce code au début de la page du site qui s'affiche par défaut.
   TaskScheduler :: run();
/* -------------------- */
?>

Conclusion :


Il n'y a aucune difficulté majeure dans la compréhension de cette source, mais je m'excuse pour le manque de commentaire (pour être franc, y en a pas, mais pour ma défense, j'ai fait cette classe à l'arrache en cours de droit). De plus, elle est largement optimisable, mais elle a le mérite de faire le travail que l'on lui demande de faire !
N'hésitez pas à faire des commentaires ou des propositions !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

kairi084
Messages postés
9
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
5 juillet 2010
-
Bonjour, quelqu'un pourrait il m'expliquer comment installer cette petite aplication.
Je l'ai mis sur mon serveur et il me met
Parse error: syntax error, unexpected T_STRING in Task.interface.php on line 3

si quelqu'un pouvait m'aider =(
LocalStone
Messages postés
515
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
1 mars 2009
-
J'avoue qu'au niveau de la sécurité, c'est pas très grave. Maintenant, si ça te pose vraiment problème, tu peux changer le chemin du fichier de configuration et le mettre dans un répertoire protégé par un .htaccess ou autre.
codefalse
Messages postés
1127
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
1 -
Au niveau sécurité, comme tu dit Emilia123. Ce n'est pas très grave, il n'y a pas de données importantes divulguées dans le fichier (normalement...) juste un fichier à executer, à une date précise (ou un interval de temps régulier)
cs_emilia123
Messages postés
122
Date d'inscription
mercredi 19 décembre 2001
Statut
Membre
Dernière intervention
5 janvier 2009
-
bonjour,

J'ai pas testé le fonctionnement par contre la vision de la liste des fichiers me fait remonter un petit problème sur le nom du fichier de configuration.
Que cela soit un fichier .conf ou .xml comme proposé ci dessus, il est possible d'en afficher le contenu dans un browser, ce qui pourrait etre moyen si des infos confidentielles devaient etre présentes.
Ne serait il pas possible de le mettre avec extension .php, pour que son contenu redevienne "sécurisé" ?

bonne continnuation

EM.
LocalStone
Messages postés
515
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
1 mars 2009
-
Merci pour la note, ça fait plaisir !
Pour le paramétrage du fichier de configuration, je suis d'accord. Mais pour ma défense, je répète que j'ai codé ça en speed ...
Et pour WebCron ... Bah je suis un boulet. J'avais qu'à chercher avant de faire ce TaskScheduler. Au moins, le droit est passé plus vite que d'habitude.
++ !
L.S.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.