begin process at 2010 09 09 10:37:23
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

 > [PHP5] TASKSCHEDULER, UN PETIT PLANIFICATEUR DE TÂCHE EN PHP ...

[PHP5] TASKSCHEDULER, UN PETIT PLANIFICATEUR DE TÂCHE EN PHP ...


 Information sur la source

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Class et Objet ( POO ) Classé sous :Cron, Planificateur, Tâche Niveau :Débutant Date de création :08/11/2007 Date de mise à jour :08/11/2007 19:11:29 Vu / téléchargé :5 597 / 322

Auteur : LocalStone

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 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

  • <?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();
  • /* -------------------- */
  • ?>
<?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 !

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

08 novembre 2007 19:11:29 :
Problème dans les includes.

 Sources du même auteur

Source avec Zip Source avec une capture MOTEUR D'ASPECT POUR PHP
Source avec Zip [PHPHOOK] UN PETIT SYSTÈME DE GESTION DES HOOKS DE SUBVERSIO...
Source avec Zip [PHP5] NAVIGUER DANS UNE COLLECTION À L'AIDE D'UNE PSEUDO SY...
Source avec Zip Source avec une capture CLASSE D'ÉDITION DES FICHIERS DE CONFIGURATION D'APACHE
SIMULER LA VISIBILITÉ PACKAGE (COMME EN JAVA)

 Sources de la même categorie

Source avec Zip Source avec une capture MY.EXCEPTION par inwebo
SIMPLIFIEZ VOS CONNEXIONS FTP AVEC LEGFTP ! par leglopin
Source avec une capture CLASSE GÉNÉRATEUR DE CODES BARRES 2D DATAMATRIX par TorTukiTu
CLASSE MAIL par djguigui34400
Source avec Zip DÉBOGAGE D'UN CODE PHP (SUIVIT DES VARIABLES) par originalcompo

 Sources en rapport avec celle ci

FICHIER UNIQUE POUR DÉCLENCHEMENT WEBCRON par supprend13
TÂCHES AUTOMATISÉES - CRON par piep14

Commentaires et avis

Commentaire de codefalse le 08/11/2007 23:07:02 administrateur CS 8/10

en cours de droit, nan mais ! faut suivre les cours ! :p
Sinon, est-ce que tu es au courant qu'il existe des cron spécialisés, genre :
http://www.webcron.org/ (:

Quelques points sur tes sources :
"private static $CalendarFileName = './Calendar.conf';"
perso j'aurai mis le choix du fichier en parametre d'instanciation, au cas ou
Personnellement, j'aurai mis le tout dans un fichier xml plutot que dans un fichier de configuration : plus simple à lire et plus simple à configurer :)

euh voila c'est tout :)
Sinon j'aime plutot bien, ca mérite un 8 :)

Commentaire de LocalStone le 10/11/2007 15:52:11

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.

Commentaire de emilia123 le 12/11/2007 08:01:12

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.

Commentaire de codefalse le 12/11/2007 09:19:50 administrateur CS

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)

Commentaire de LocalStone le 12/11/2007 10:26:41

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.

Commentaire de kairi084 le 16/11/2008 18:50:47

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 =(

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Planificateur de taches - cron [ par ninho44 ] Bonjour à tous,J'aurai voulu savoir comment on planifie une taches sur OVH. J'ai entendu parlé des crons mais après bien des recherches, je ne compren Cron-jobs PHP [ par didoun75 ] Je sui hébergé sur strato.de et je voudrais me servir de leur con-jobs. Je paramètre la commande sur telnet avec sh : /usr/local/bin/php -q -f cronjob Impossible d'ouvrir un fichier lorsque le php est lancé depuis cron [ par weabow ] Bonjour, J'ai un script php que je lance chaque jour grâce à cron. Cela fonctionne très bien. Dans ce php, je fais un test : if ( file_exists( $fi Exécution automatique d'une tâche [ par wininfos ] Bonjour,Sur mon site, j'ai des rapports à envoyer par mail, mais je ne vais pas meconnecter tous les jours à une heure précise pour que je lance la pr cron php [ par str ] Salut,Je suis a la recherche d'une commande pour executer un script php uniquement sur le serveur à partir d'une page php executée par un navigateur c fonction PHP et CRON [ par garfield90 ] Bonjour, Voila mon probl&#232;me, Lorsque CRON fait touner un script PHP, je n'ai pas acces en autre aux fonctions mysql, ce qui est &#233;normement gestion du cron avec php [ par maxprog ] bonjour,mon probl&#232;me est le suivantj'ai des scripts php qui g&#233;n&#232;re des rapports en pdf et qui les envoit par mail par la suite, mais l' cron [ par zorkain ] bonjour,je viens de decouvrir le script de cron, qui permet d exectuer des scripts automatiquement a certaines heures.malhreusement je ne sais pas ce .cmd needed for cron [ par zzzzzz ] Bonjour,J'ai actuellement un .cmd &#233;x&#233;cut&#233; par un cron pour faire une sauvegarde de ma bdd... J'aimerai&nbsp; maintenant ouvrir un fichi Ajouter une tâche planifiée windows depuis un script [ par lastpixl ] Bonjour ! Pour un script php executé avec php.exe (pas de serveur web), j'ai besoin de programmer une tâche planifiée à partir du script : il doit se


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,544 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales