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/optimisation d'un script php ultra long


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Execution/optimisation d'un script php ultra long
    Bonjour a tous !

    je developpe un script php qui doit parser un tas de flux rss (a distance) et sauvegarder ces données dans une table mysql (en local)
    Tous les matin, j'ai un cron qui lance une fonction du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $listRss = getAllRssURLFromByDB();					//Je recuperer depuis ma BDD locale toutes mes url de flux rss
     
    foreach($listRss as $rssURL) {						//pour chaques url
      $dataToPutOnLocalDB = parseRSS($rssURL);			//Je parse le flux (avec curl and co) et j'obtien un array de données
      sql_insertDataOnDatabase($dataToPutOnLocalDB);	//puis je sauvegarde ces données dans ma BDD locale
    }
    Mon probleme est que l'execution est trop longue....

    J'ai iniatialisé mon serveur avec ces valeurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ini_set('mysqli.reconnect', 'On');
    ini_set('max_allowed_packet', '128M');
    ini_set('memory_limit', '128M');
    ini_set('max_execution_time', '200');
    Mais rien n'y fait, j'ai des erreurs du type "Maximum execution time exceeded" et "MySQL server has gone away"

    Mon soucis est qu'a la fin, je vais avoir dans ma base de données des centaines d'url de flux rss a parser et a enregistrer...
    Le temps d'execution va donc augmenter...

    Pour resoudre ce probleme, je pensais utiliser le multi threading (comme en C#, java...).
    Pensez vous que de lancer 1 thread par parsing RSS (j'entends ce qu'il y a dans ma boucle foreach) pourrai resoudre mon probleme et augmenter les performances de mon script ?

    Bon but étant d'etre capable de lancer tous ces calculs et eviter les erreurs du type "Maximum execution time exceeded" et "MySQL server has gone away"?

    Comment faire ca en php (un bon tuto ou une classe qui gere tout facilement serai le bienvenue) ?

    Et je suis bien sur ouvert a toutes autres propositions pouvant m'aider a resoudre ce probleme...

    Merci bien !

    Peter

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    lance ton script en ligne de commande

  3. #3
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    Effectivement, de 1 utilise la ligne de commande, tu n'a pas de limite de temps d'execution mais ça ne changera rien à ta base de données.
    Ensuite, essaye d'optimiser ton script. Préfère te connecter à ta base de données uniquement quand tu va faire une requete ou un ensemble de requete, si pendant que tu parse, il se passe plusieurs secondes, coupe ta connexion (mysql_close()) et relance là plus tard comme ça ton serveur t'enverra pas bouler :p

Discussions similaires

  1. Optimisation pour l'execution de scripts php
    Par thaundeadboss dans le forum Langage
    Réponses: 0
    Dernier message: 19/01/2010, 14h33
  2. planifier une execution périodique d'un script php
    Par z.fati dans le forum Langage
    Réponses: 2
    Dernier message: 03/07/2008, 13h24
  3. Suivre déroulement script PHP très long
    Par meufeu dans le forum Langage
    Réponses: 6
    Dernier message: 20/06/2008, 10h30
  4. [Système] execution automatique d'un script php.
    Par ghostdog dans le forum Langage
    Réponses: 7
    Dernier message: 31/05/2006, 16h06
  5. Pb d'execution de requete avec un script php
    Par ythierrin dans le forum Requêtes
    Réponses: 3
    Dernier message: 22/08/2003, 14h34

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