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 :

Traitement fonction php par étapes


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 105
    Par défaut Traitement fonction php par étapes
    Bonsoir,
    j'ai un script assez lourd qui doit recuperer le contenu (30 000 resultats en moyenne par table) de plusieurs tables afin de les traiter.

    Ce script à un temps d'éxécution trés long et provoque des erreurs (max execution time ou erreur 500), donc je souhaiterais découper son traitement par un appel .

    Traiter les données par étape (un nouvel appel lorsque la partie précédente est terminer)

    Pour le moment mon script fonctionne de cette maniére:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $alphacount = count($alpha);
    for($count = 0;$count < $alphacount;$count++)
    	{
             requete mysql , $alphacount sert à construire ma requete
             
           table_$alphacount (une table par lettre)
    
    
    
     for($count =0;$count < $db->row_count;$count++)
    	{
         traitement de chaque resultats issu des tables
      }   
           }
    J'ai pensé qu'il pouvait être judicieux de procéder de cette maniére:
    1. traiter une partie de la table A (limiter les resultats)
    2. traiter l'autre partie de la table A
    Passer à la table suivante
    1. traiter une partie de la table B (limiter les resultats)
    2. traiter l'autre partie de la table B

    .... et ainsi de suite


    Par contre, j'ai du mal a le mettre en pratique.

    Pouvez vous m'eclairer sur la méthode pour procéder au traitement de mon script par étape?
    Dois-je utiliser des fonctions recursives? espacer les fonctions (sleep)?


    Merci d'avance
    Thibaut

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,

    regarde déjà du côté de set_time_limit() , ce qui te permettra d'augmenter le temps d'attente.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 105
    Par défaut
    Je te remercie pour ta réponse, mais j'ai déjà testé avec un set limit 7200 (2heures), par contre le script a provoqué une erreur 500.

    Alors que quand je traite table par table, cela fonctionne, donc je pense que le fait de procéder en plusieurs étapes peut remédier à ce probleme, par contre, je ne vois pas comment procéder.

    Merci

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/07/2008, 16h14
  2. [PHP-JS] Appel de fonction PHP par JS
    Par pat06 dans le forum Langage
    Réponses: 5
    Dernier message: 29/11/2007, 09h03
  3. Réponses: 6
    Dernier message: 07/06/2007, 14h27
  4. Appel de fonctions php par variable
    Par WagaSeb dans le forum Langage
    Réponses: 2
    Dernier message: 02/06/2007, 11h06
  5. [Système] Fonction PHP à executer par un seuveur
    Par Bartheose dans le forum Langage
    Réponses: 1
    Dernier message: 18/01/2006, 12h38

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