begin process at 2012 02 09 13:10:38
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > TÂCHES AUTOMATISÉES - CRON

TÂCHES AUTOMATISÉES - CRON


 Information sur la source

Note :
6,67 / 10 - par 3 personnes
6,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date / Heure Classé sous :webcron, cron, tâche, automatisée, automatisation Niveau :Initié Date de création :13/10/2005 Vu :9 013

Auteur : piep14

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

 Description

C'est un petit script qui permet de choisir a quelle heure on désire que des requete soient exécutées !!!! C'est mon premier POST alors j'espère qu'il y aura des critiques qui vont me permettre de m'améliorer !!!

Merci

Source

  • $req=mysql_query("SELECT * FROM cron WHERE `id`='1'");
  • $res = mysql_fetch_array($req);
  • $day = $res[day];
  • $month = $res[month];
  • $year = $res[year];
  • $seconds = $res[seconds];
  • $minutes = $res[minutes];
  • $hour = $res[hour];
  • $repete=$res[frequency];
  • $date_actuelle = time();
  • $date_a_venir = mktime($hour, $minutes, $seconds, $month, $day, $year);
  • echo "<center><b><i>Date actuelle ::> $date_actuelle -- $date_a_venir <:: Prochaine execution</i></b></center>";
  • if($date_actuelle>$date_a_venir)
  • {
  • $next=getdate($date_a_venir + ($repete*3600) );
  • $year=$next[year];
  • $month=$next[mon];
  • $day=$next[mday];
  • $hour=$next[hours];
  • $minutes=$next[minutes];
  • $seconds=$next[seconds];
  • mysql_query('UPDATE cron SET year= "'.$year.'", month="'.$month.'", day="'.$day.'", hour="'.$hour.'", minutes="'.$minutes.'", seconds="'.$seconds.'" where id=1');
  • echo "<center><b>Execution de la requete</center></b>";
  • }
$req=mysql_query("SELECT * FROM cron WHERE `id`='1'");
$res = mysql_fetch_array($req);
$day = $res[day];     
$month = $res[month];   
$year = $res[year];       
$seconds = $res[seconds];     
$minutes = $res[minutes]; 
$hour = $res[hour];   
$repete=$res[frequency];

$date_actuelle = time();
$date_a_venir = mktime($hour, $minutes, $seconds, $month, $day, $year);

echo "<center><b><i>Date actuelle ::> $date_actuelle -- $date_a_venir <:: Prochaine execution</i></b></center>";

if($date_actuelle>$date_a_venir)
{
        $next=getdate($date_a_venir + ($repete*3600) );
        $year=$next[year];
        $month=$next[mon];
        $day=$next[mday];
        $hour=$next[hours];
        $minutes=$next[minutes];
        $seconds=$next[seconds];
   mysql_query('UPDATE cron SET year= "'.$year.'",  month="'.$month.'",  day="'.$day.'", hour="'.$hour.'", minutes="'.$minutes.'", seconds="'.$seconds.'" where id=1');
   echo "<center><b>Execution de la requete</center></b>";
}



 Sources de la même categorie

Source avec une capture AGENDA GRAPHIQUE SIMPLE (DÉBUTANT) À INTÉGRER par NicomakM
CALCUL DU NOMBRE DE JOURS CONTENUS DANS L'INTERSECTION DE DE... par curphey
CALENDRIER EN 70 LIGNES par tchconst
Source avec Zip CALENDRIER par gabay
CALENDRIER SIMPLE par manuche

 Sources en rapport avec celle ci

[CRON] INSERT ON DUPLICATE KEY UPDATE par pierreSabatier
FICHIER UNIQUE POUR DÉCLENCHEMENT WEBCRON par supprend13
Source avec Zip [PHP5] TASKSCHEDULER, UN PETIT PLANIFICATEUR DE TÂCHE EN PHP... par LocalStone
Source avec Zip Source avec une capture APERÇU DES FICHIERS IMAGES OU HTML par GrosJeanCommeDevant

Commentaires et avis

Commentaire de FhX le 13/10/2005 11:36:31

Pour ca il faut que la page soit chargé dans un navigateur quelconque !

Commentaire de Anthomicro le 13/10/2005 13:20:04

Salut,

idem que FhX, en rajoutant quelques trucs :

n'utilise pas de SELECT * mais un SELECT champ1,champ2...

lorsques tu utilises tes champs ne met pas $day = $res[day]; mais $day = $res['day'];

etc...

Commentaire de Kanouille le 13/10/2005 14:03:06

Je ferais juste une remarque concernant le titre de ton code.
En effet, il ne peut être qualifier de cron puisqu'il doit être chargé par un navigateur (comme l'a dit FhX), ou plus exactement, un navigateur doit faire une requète au serveur pour que celui-ci l'exécute.
Or un CRON est en soit un script qui est lancé de manière périodique par le serveur seul.
Pour optenir ce résultat, il faut avoir accès à la configuration de ton serveur et modifier la variable "crontable" qui est un fait un tableau où s'ont enregistrer l'ensemble des crons qui doivent être lancé à une date,heure,min,sec précise, périodiquement ou non.

Si j'ose rajouter quelques remarques :
- tu peux remplacer tes variables de date (jour, mois, année, etc) par une seul de type "DATETIME" dans ta base de donnée. Elle dispose d'une syntaxe certe particulière qu'il faut connaitre si on veut pouvoir l'utiliser correctement : "Y-m-d H:i:s" ce qui correspond à ANNEE-mois-jour HEURE:minute:seconde

Tu peux générer facilement ce genre de date par la fonction : date() => date('Y-m-d H:i:s')
Pour plus d'information sur la fonction date() je te conseille le site : www.nexen.net

Enfin, pour plus de clarté dans ton code, essaie de séparer des variables php de tes chaines
==> Date actuelle ::> $date_actuelle -- $date_a_venir <:: Prochaine execution
==> Date actuelle ::> ".$date_actuelle." -- ".$date_a_venir.3 <:: Prochaine execution
Un peu comme tu te dois de le faire en javascript :)
Ta version marche très bien, mais disons qu'elle est moins lisible face à de longues chaînes.

Commentaire de Anthomicro le 13/10/2005 14:04:56

Pour le datetime je ne suis pas d'accord : ça occupe plus de place et c'est moins aisé à traiter ;-)

Commentaire de Kanouille le 13/10/2005 14:15:24

Hmm pas convaincu que ca occupe moins de place, compte tenu que pour la base de donnée ce n'est ni plus ni moins qu'une chaine de caractère un peu particulière(enfin c'est ce que j'en avais lu).
Cependant, dans le cas de multiple champ pour générer une date, le traitement de la requête sera parcontre plus lourd vu qu'il y a plusieurs champs à examiner, au lieu d'une seule. C'est d'ailleur pour cette raison que les types DATE et DATETIME ont été créer ^^

Ainsi au final, si la syntaxe ne te plait pas, tu peux tout aussi bien utiliser une chaine de caractère que tu considère comme une date mais auquel tu donne la syntaxe que tu veux ^^.

Commentaire de Anthomicro le 13/10/2005 14:30:23

c'est plus lourd : un INT occupe 4 octets (32 bits), le datetime en occupe deux fois plus.

ensuite je ne vois pas en quoi la requête est plus lourde, au contraire.

Commentaire de Anthomicro le 13/10/2005 14:31:18

ah je viens de comprendre, pour une date stockée dans un INT un seul champ suffit, tu stockes la valeur de la fonction time() et hop...

Commentaire de Kanouille le 13/10/2005 14:34:06

c'est aussi une solution ;)
Mais l'idée et la même. N'avoir en Base de donnée qu'un seul champ.

Commentaire de coucou747 le 13/10/2005 18:47:13 administrateur CS

Bon, selon moi, on pourrait peut-être faire un script php ou autre qui serait lancé par le vrai CRON et qui exécuterais des requettes présentes dans une table mysql si la date est bonne...

Ce script a de l'idée, mais ne peut fonctionner que sur un site fréquenté régulièrement...

Commentaire de piep14 le 13/10/2005 19:33:09

Bah oui, mais si le serveur ne le permet pas de lancer des taches CRON ???
Voila le pourquoi j'ai fait comme ceci !!! :D

Commentaire de Anthomicro le 13/10/2005 20:09:45

bah si il permet pas de lancer des tâches cron tu passes par webcron

Commentaire de coucou747 le 13/10/2005 20:21:53 administrateur CS

ou tu changes de serveur...

Commentaire de Anthomicro le 13/10/2005 20:25:13

si t'as le budget ouais, enfin c'est déjà pas la même chose là...

Commentaire de piep14 le 13/10/2005 20:35:40

Bah c'est pareil avec Webcron, c'est payant !!! Si mon site accueil tout le temps des visiteurs mon système fonctionnera de la meme manière ! :D

Commentaire de Anthomicro le 13/10/2005 21:27:35

webcron c'est gratos...

Commentaire de xk155 le 17/10/2005 08:54:44

Une solution pourrait-être d'intégrer ce script dans une page html avec un auto-refresh de délai court. Il chargerai sa page dans un navigateur. Aprés, il suffit de ne pas fermer la page en question.

Commentaire de Anthomicro le 17/10/2005 13:31:02

ouais c'est du crade de chez crade, et hyper gourmand en plus ^^

Commentaire de Antidote le 17/10/2005 19:06:40

et en faisant joujou sur un flux RSS veux qu'eux on des temps d'actu que tu peut régler.

tes internautes intergrent le flux, a chaque appelle de mises à jour du flux ton script est joué... Ça pourrait être une idée.

J'ai jamais monté de RSS donc j'en sais rien ^^

Commentaire de Antidote le 17/10/2005 19:08:48

Et en faisant joujou sur un flux RSS vu qu'eux on des temps d'actu que tu peux régler.

Tes internautes intègrent le flux, à chaque appel de mises à jour du flux ton script est joué... Ça pourrait être une idée.

J'ai jamais monté de RSS donc j'en sais rien ^^

ahem (mieux orthographié ^_^)

Commentaire de astuces_jeux le 19/06/2007 20:26:28

il y a pas un code ou on ne doit pas auvrir dans un navig ???

Commentaire de astuces_jeux le 19/06/2007 20:27:30

moi j'ai une erreur webcron avec la function gzip

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Automatisation de tâche [ par mbik ] Bjr,je suis un stagiaire en info et je souhaite mettre en place :un script qui exécutera tous les soirs à partir de 01h une requête sql dans ma base d Tâche planifiée en PHP [ par Crafty57 ] Bonjour,Je suis en train de développer une application permettant de faire du Wake On LAN. En plus du démarrage immédiat, je souhaiterai permettre aux eviter le cron [ par emiliejolie04 ] Bonjour, J'aimerais trouver une solution pour pouvoir faire une action vu que je ne peux pas utiliser le cron (hebergement mutualisé ne le permettant Mise à jour de champs via formulaire : besoin d'aide [ par Padaone91 ] Bonjour à tous, J'aurais besoin d'aide pour finaliser un projet de gestionnaire de tâche quotidienne. En fait j'ai un site web qui me permet de plan msql.o absent [ par shadowfox666 ] Bonjour, (Je précise je suis chez OVH avec un abonnement serveur dédié)J'ai réalisé un script PHP qui marche correctement lorsqu'on le lance manuellem 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 automatisation import fichiers csv [ par Khenat375 ] Bonjour, j'ai un fichier RecupCSV.php avec seulement du php à l'intérieur afin d'extraire les données des csv et de les mettre dans la base de donnée Automatisation d'une insertion dans un fichier texte en fontion de l'heure [ par sly456328971 ] Bonjour, Dans un fichier texte, j'aimerais automatiser l'insertion d'une ligne tous les jours a 13h00 par exemple. Je sais qu'en php on peut récupére


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,061 sec (3)

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