IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Script PHP en sorte de cron


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 217
    Points : 113
    Points
    113
    Par défaut Script PHP en sorte de cron
    Bonjour les amis,

    je viens de mettre en place une interface ou je peux saisir des requêtes SQL et les enregistrer dans ma base de données. Pour chacune de ces requêtes, je peux aussi depuis l'interface, rentrer une valeur correspondant à la fréquence à laquelle que je dois exécuter la requete:
    exemple : 10 ==> la requete sera executée toute les 10mn.
    J'ai aussi mis en place les scripts php permettant d'aller récupérer les requêtes et les exécuter.
    Actuellement je veux écrire le script php (sorte de cron) qui sera chargé de vérifier à chaque instant la fréquence de chaque requêtes dans ma table pour pouvoir l'executer.
    N'ayant jamais manipulé les cron, je ne sais pas trop comment s'y prendre.
    Dois je faire un while(1) et mettre dedans mes traitements ?? ou bien existe -il des méthode système à appeler? bref.. je ne sais pas par ou commencer
    Si vous avez des idées elles sont vraiment les bienvenues.

    Merci d'avance de votre aide.

  2. #2
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503

  3. #3
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    J'ai déjà fait quelque chose de très similaire.
    J'ai mis du temps à modéliser, mais j'ai fini par opter pour une table frequence qui avait cette forme, finalement calée sur la façon dont on écrit les crons.
    Avec ça, je pouvais caser toutes les fréquences possibles et imaginables.

    Ton cron se réveille toutes les 10 miinutes et passe par cette table pour voir ce qu'il a à faire, s'il n'a rien à faire, il se recouche, sinon, il choppe tous les id des requêtes qu'il doit générer.

    Bon courage...

    table frequence
    id
    requete_id
    year ('any' ou '2014' ou '2014,2016' ou '2014-2016')
    month ('any' ou '09' ou '01,03,07' ou '01-03')
    day ('any' ou 'jour_sem' ou '25' etc...) si jour_sem, on va voir la valeur de jour_sem
    hour ('any' ou etc.)
    min ('00','10','20' etc. jusqu'à 50) si 10 est ta plus haute fréquence
    jour_sem ('1' ou '6,7')
    debut (debut de validité du cron)
    fin (fin de validité du cron)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
     
    //mon cron commence toujours par éxécuter cette méthode, qui lui affecte le travail.
    protected function setRequetes_id(){
    	$connex=new ConnexionToto();
    	$toto=$connex->pdo;
    	//mieux vaut figer les données temps d'abord
    	$temps=date("m:d:H:i:w");
    	$elem=explode(':',$temps);
     
    	$sql='SELECT distinct requete_id FROM `frequence`
     
    	WHERE month in ("any","'.$elem['0'].'")
    	and (
    		day in ("any","'.$elem['1'].'")
    		or cast("'.$elem['1'].'" as unsigned) BETWEEN cast( substring( day, 1, 2) as unsigned) AND cast( substring( day, 4, 2 ) as unsigned)
    		or day = "jour_sem" and (
    			jour_sem="'.$elem['4'].'"
    			or cast("'.$elem['4'].'" as unsigned) BETWEEN cast( substring( jour_sem, 1, 1) as unsigned) AND cast( substring(jour_sem, 3, 1 ) as unsigned)
    		)
    	) 
    	and (
    		hour in ("any","'.$elem['2'].'")
    		or cast("'.$elem['2'].'" as unsigned) BETWEEN cast( substring( hour, 1, 2) as unsigned) AND cast( substring( hour, 4, 2 ) as unsigned)
    	)
    	/*mes minutes étaient gérées différemment des tiennes, tu complèteras*/
    	and now() between debut and fin;';
     
    	echo '<pre>'.$sql.'</pre>';
     
    	try{
    		$stmt=$toto->prepare($sql);
    		$stmt->execute();
    		while($result = $stmt->fetch(PDO::FETCH_ASSOC)){
    			array_push($this->requetes_id,$result);
    		}
    	}
     
    	catch(PDOException $e){
    		echo "<br/>\nErreur SQL cron <br/>\n";
    		echo $e->getMessage();
    	}
    	$connex->close();
    }

Discussions similaires

  1. Cron et script php
    Par PKO06 dans le forum Administration système
    Réponses: 0
    Dernier message: 13/03/2009, 13h34
  2. Cron: executer un script php avec framework
    Par thibaut06 dans le forum Administration système
    Réponses: 2
    Dernier message: 01/05/2008, 15h55
  3. lancement d'un script php par cron
    Par gege87270 dans le forum AIX
    Réponses: 8
    Dernier message: 06/02/2008, 17h44
  4. Script php et cron
    Par titou250 dans le forum Administration système
    Réponses: 4
    Dernier message: 29/11/2006, 17h17
  5. Script php et cron
    Par julien.63 dans le forum Administration système
    Réponses: 10
    Dernier message: 20/11/2006, 11h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo