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 :

création de fichiers : gestion du timeout


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Points : 177
    Points
    177
    Par défaut création de fichiers : gestion du timeout
    Bonjour

    A partir de plusieurs requetes, je créé des fichiers html
    mais comme le traitement est assez long et qu'il y a plus de 1000 fichiers à créer
    j'ai une erreur de timeout qui apparait apres la creation d'une centaine de fichiers

    Quels sont les alternatives qui me permetront de gérer ce probleme?

    Merci de votre aide

  2. #2
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    Ces pages sont générées lors de l'appel d'une URL via ton navigateur? Qu'est-ce qui timeout? ton browser? PHP?

    Une solution assez propre dans ce genre de situations qui prennent du temps à s'exécuter, serait de gérer une liste de taches, via une table SQL par exemple, qui contiendrait des actions à faire.
    Ensuite tu créées un script php en cron, qui va parcrouir cette table de choses à faire, et s'il trouve une action à exécuter, il s'en charge (comme la génération de tes pages)
    C'est ainsi complètement indépendant de ton browser, et ca tourne en tâche de fond.
    Reste à savoir si
    1. tu as accès aux crons (unix? windows?)
    2. cela te poserait problème de lancer cette tâche en fond? comme seul problème je verrais qu'une action, dépendante de la bonne réalisation de cette tâche, ne pourrait être exécutée tant que la tâche n'est pas terminée, mais ca, tu peux très bien le gérer en donnant un état à la tache, dans la liste d'exécution (p.ex.: 'à faire', 'en cours', 'terminé')

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Points : 177
    Points
    177
    Par défaut
    merci

    en clair (j'espere) j'écris dans des fichiers créés dynamiquement avec php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    		$fh = fopen($file, 'r');
    		$fd = fopen($new_file, 'w');
    		while (!feof($fh)) {	
    			$current_line = fgets($fh);
    			$current_line = preg_replace("/{DETAIL_PRODUITS_LISTE}/", $detail_liste, $current_line);
    			fwrite($fd, $current_line);
     
    		}
    		fclose($fh);
    		fclose($fd);
    ce code est entouré par une boucle FOR afin qu'il s'execute plusieurs fois
    j'ai remarqué que dès l'execution de ce script, 117 fichiers sont créés immédiatement (dans la seconde) puis c'est le bloquage !
    jusqu'à ce message d'erreur (au bout de qq minutes) :
    Fatal error: Maximum execution time of 30 seconds exceeded in /home.10.25/site/www/printor/admin/gestion_pri_fic_pro.php on line 210
    line 210 correspond à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $current_line = fgets($fh);
    Merci de votre aide

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    set_time_limit();
    en changeant le temps du timeout en secondes, mettre une grande valeur...ou
    set_time_limit(0); pour une temps infini !

Discussions similaires

  1. Gestion des timeout
    Par poinclin dans le forum CORBA
    Réponses: 6
    Dernier message: 08/07/2004, 23h40
  2. Création de fichier
    Par gsxr man dans le forum ASP
    Réponses: 2
    Dernier message: 28/06/2004, 22h19
  3. Réponses: 8
    Dernier message: 03/09/2003, 00h47
  4. Manipulation de fichiers - gestion d'extensions
    Par ulukai dans le forum Linux
    Réponses: 13
    Dernier message: 02/07/2003, 15h28
  5. création de fichiers .x
    Par Pazz dans le forum DirectX
    Réponses: 1
    Dernier message: 03/12/2002, 00h33

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