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 d'un cron en php


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de mme_chelaou
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2008
    Messages : 126
    Par défaut Execution d'un cron en php
    Bonjour tout le monde,

    J'ai un script qui se connecte à la BDD et traite chaque enregistrement.

    Un exemple au hasard juste pour comprendre le principe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $link = mysql_connect("sever", "user", "pass") or die(mysql_error()) ;
    mysql_select_db("bdd") or die(mysql_error()) ;
    $sql = "SELECT * FROM ma_table WHERE date like '2010-09-%'";
    $rep = mysql_query($sql) ;
    $links = array() ; 
    while ($row = mysql_fetch_array($rep))    $links[] = $row ;
    foreach ($links as $key => $value) 
    {
    	// mon traitement
    }
    mysql_close();
    Ce script je le lance en tant que cron chaque 2 semaines. Tout en sachant qu'il y a des milliers d'enregistrement dans la BDD il m'affiche une erreur pendant l'exécution du cron : ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Allowed memory size of 33554432 bytes exhausted (tried to allocate 77 bytes) in /chemin_serveur/cron.php on line 60;
    Alors voilà ce que je souhaite :

    */ Je sais qu'il y a un moyen en utilisant js pour faire un setTimeout, pour qu'après chaque enregistrement, il s'arrête quelques secondes ensuite il passe au nouvel enregistrement.

    */ Je sais aussi, que le cron n'accepte pas le js.

    => Je souhaite savoir s'il y a un moyen de le faire en php ou bien une autre manière d'exécuter mon script automatiquement.

    Merci en avance mille fois pour toute réponse.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Temporiser ton script ne réduira pas sa consommation de mémoire.

    Actuellement sa limite est à 32Mo.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    pourquoi tu fais 2 boucles et pas ton traitement direct dans le while ?

  4. #4
    Membre confirmé Avatar de mme_chelaou
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2008
    Messages : 126
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Temporiser ton script ne réduira pas sa consommation de mémoire.

    Actuellement sa limite est à 32Mo.
    T'as une idée comment faire pour régler ça ?

    Pour les 2 boucles, c'est parce que ça m'aide pendant le traitement.

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par mme_chelaou Voir le message
    Pour les 2 boucles, c'est parce que ça m'aide pendant le traitement.
    ducoup c'est plus long, tu fais quoi pendant ton traitement ?

    pourquoi php 4 ton hébergeur propose pas php 5 ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Le problème n'est pas une question de temps mais d'utilisation mémoire.

    Si tu manipules 200Mo de données, une limite du serveur a 32Mo ne suffit pas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre confirmé Avatar de mme_chelaou
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2008
    Messages : 126
    Par défaut
    J'ai trouvé 2 solutions :

    * Soit utiliser : usleep(ms)

    * Soit utiliser les "limit" dans ma requete

    Dans les 2 cas, j'ai utilisé : set_time_limit(0);

    Je vais essayer les 2.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je me repete mais faire des pauses dans le script ou augmenter le temps maximum d'execution n'a rien a voir avec la quantité de mémoire dont il a besoin.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Execution simultanée via Cron de scripts php
    Par zeflex dans le forum Langage
    Réponses: 17
    Dernier message: 06/02/2011, 23h01
  2. [Système] execution automatique d'un script php.
    Par ghostdog dans le forum Langage
    Réponses: 7
    Dernier message: 31/05/2006, 17h06
  3. [Mail] Mailing de masse et cron. Utiliser PHP ?
    Par r-zo dans le forum Langage
    Réponses: 13
    Dernier message: 18/05/2006, 13h51
  4. [Système] Execution d'un programme en php
    Par sylsau dans le forum Langage
    Réponses: 16
    Dernier message: 26/01/2006, 17h54
  5. Tache cron cgi php...
    Par yaka2 dans le forum Web
    Réponses: 2
    Dernier message: 12/12/2005, 15h32

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