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 :

Execution tache php par trimestre


Sujet :

Langage PHP

  1. #1
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut Execution tache php par trimestre
    Bonjour à tous,

    Je vous détail un peu le souci que j'ai, je doit lancer une procédure tous les trimestres.
    Cette procédure vas créer des enregistrements en bdd et envoyer des mails.

    J'ai prévu pour cela, la création d'une cron sur le serveur qui s'éxécutera chaque 59min, et qui appelera ma page d'automatisation.
    Cela ca devrai aller, la ou je commence à avoir des problèmes c'est pour que ma page php execute bien ce que je lui demande à la bonne date.
    (Cette même page appelera plusieurs routines certaines par heure d'autre par 2 jours), et moins et les Dates ca ne marche jamais.

    Mon but serai donc de trouvé une solution qui compare la date du jour, à une des dates prédéfinies ( les 4 début de trimestres ) seulement voila ma tache cron vas s'executer pas forcément quand il le faut (cf 1er trimestre 1er jour 1 heure).
    Et je voie pas trop comment abordé la chose pour le coup, je doit envoyer qu'un seul traitement par trimestre, le tout en sachant que ma cron vas pas tomber au bon moment.

    Donc si certains d'entre-vous ont déja traité le problème, ou si vous avez un lien me donnant plus d'infos (déja sur les dates mais du genre "les dates pour le nul des nuls"), je vous en serai reconnaissant.

    Cdt.
    Règles du club -> Cliquez-ici
    FAQ Hardware -> Cliquez-ici
    Vous avez résolu votre souci ->
    F1 et Google sont vos amis.

  2. #2
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Du temps que le serveur d'ici était surchargé j'ai commencé à débiter le sujet.
    J'en suis arrivé à cela, seulement je ne suis pas sur que cela fonctionne et si c'est la bonne manière de le faire.

    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
    $annee = date("Y");
    $mois = date("m");
    $jour = date("d");
    $date_du_jour = date("Y-m-d");
    $un_trim = mktime(0,0,0,01,01,$annee);
    $deux_trim = mktime(0,0,0,04,01,$annee);
    $trois_trim = mktime(0,0,0,07,01,$annee);
    $quatre_trim = mktime(0,0,0,10,01,$annee);
    $time_jour = mktime(0,0,0,$mois,$jour,$annee);
    if($time_jour == $un_trim || $time_jour == $deux_trim ||$time_jour == $trois_trim ||$time_jour == $quatre_trim){
    	$sql = "SELECT * FROM mailing_parcauto WHERE trimestre='$date_du_jour'";
    	$req = mysql_query($sql);
    	$nbr = mysql_fetch_row($req);
    	if($nbr == 0){
    		cree_releve();//on lance le traitement.
    		//on insère dans la table pour stocker que l'envoie pour ce jour est fait.
    		$sql2 = "INSERT INTO mailing_parcauto (idmailing_parcauto,trimestre) VALUES ('','$date_du_jour')";
    		mysql_query($sql2);
    	}
    }
    Donc je realise 4 timestamps pour mes trimestres, un de plus avec la date du jour.
    Je teste si le timestamp du jour est égal à un des 4 autres.
    Ensuite je teste que je n'ai pas encore cette date dans ma bdd.
    Sinon je lance ma procédure et j'insère cette date dans ma bdd.

    Suis-je dans le bon chemin ? enfin est-ce que c'est comme cela que l'on compare des Dates, je sais que ca vous semblera surement idiot comme question, mais je suis Dateophobe.

    Merci.
    Règles du club -> Cliquez-ici
    FAQ Hardware -> Cliquez-ici
    Vous avez résolu votre souci ->
    F1 et Google sont vos amis.

Discussions similaires

  1. executer du php en passant par linux
    Par bigs3232 dans le forum Unix
    Réponses: 2
    Dernier message: 17/06/2010, 12h29
  2. Executer une page.php par eclipse
    Par sonia5 dans le forum Eclipse PHP
    Réponses: 1
    Dernier message: 01/02/2009, 23h26
  3. Exécution script php
    Par devmat dans le forum Linux
    Réponses: 11
    Dernier message: 22/04/2007, 11h14
  4. Exécuter script PHP en tâche de fond
    Par guiguibcn dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 18/10/2006, 20h51
  5. Réponses: 2
    Dernier message: 29/10/2005, 17h15

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