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 :

limité durée script, désactivé erreur


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    387
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 387
    Points : 109
    Points
    109
    Par défaut limité durée script, désactivé erreur
    Bonjour a tous.

    Voila je suis en train de navuger dans mes crawl afin de tracker la moindre erreur.

    Le soucis c'est que j'ai une erreur sur la partie backoffice, qui me genere beaucoup d'erreur.

    J'aimerai donc que ce message disparaissent. Soit en corigeant l'erreur, soit en ne générant pas d'erreur.

    Le script recherche les utilisateur en ligne, le soucis est que cette requete dépasse les 30s.
    Du coup ca me génere des erreurs de ce type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Tue Feb 07 12:05:18 2012] [warn] [client 2.111.111.111] mod_fcgid: stderr: PHP Fatal error:  Maximum execution time of 30 seconds exceeded in /vdir/mon.site.com/var/www/vhosts/mon.site.com/web/control/whos_online.php on line 123, referer: http://mon.site.com/control/whos_online.php?info=[...]
    [Tue Feb 07 12:05:18 2012] [warn] [client 2.111.111.111] mod_fcgid: stderr: PHP Stack trace:, referer: http://mon.site.com/control/whos_online.php?info=[...]
    [Tue Feb 07 12:05:18 2012] [warn] [client 2.111.111.111] mod_fcgid: stderr: PHP   1. {main}() /vdir/mon.site.com/var/www/vhosts/mon.site.com/web/control/whos_online.php:0, referer: http://mon.site.com/control/whos_online.php?info=[...
    Donc serais t il possible de limité la fonction avant le serveur afin qu'il ne genere pas d'erreur ou n'enregistre pas cette erreur dans les logs?

    Merci

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Jette un oeil sur set_time_limit.

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    387
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 387
    Points : 109
    Points
    109
    Par défaut
    Je te remercie pour ta réponse.
    en effet set_time_limit. me permettra de redefinir la durée limit. de base par le php.in il est limiter a 30s.

    Je peut le definir a 15s avec set_time_limit. , mais du coup j'aurais le warning dans les logs a 15s au lieu de 30, mais ne fais pas disparaitre le warning.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Si ton traitement prend plus de 30s, limiter la durée autorisée à 15s me parait totalement incohérent. Ce que tu veux, c'est autoriser ton traitement à prendre plus de 30s, pas moins. Donc placer la limite à 60 ou 120s...

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    387
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 387
    Points : 109
    Points
    109
    Par défaut set_limit
    d'accord j'avais pas compris la réponse.
    Je pensais que l'objectif était d'arréter la script avant la limit du php.ini afin de ne pas avoir de message d'erreur.

    J'ai donc passer le set_limit a 120, mais j'ai toujours le message d'erreur.

    Auriez vous une solution pour pas inscrire cette erreur dans les logs?

  6. #6
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Auriez vous une solution pour pas inscrire cette erreur dans les logs?
    Ton insistance sur le fait "de ne plus avoir cette erreur" est assez étrange.
    De même que, arrêter un script avant qu'il ne se termine, ça sous-entend que certains traitements ne seront pas effectués.
    Ce n'est pas logique non ?

    La vrai question qui est à se poser il me semble, c'est pourquoi le traitement est il si long (sous entendu, qu'on soit obligé à repousser cette limite de temps très loin, définir un temps très long).
    A partir du moment où on sait où cela a lieu, les solutions ne sont pas loin (théoriquement).

    Quand on a une alarme qui sonne (genre sirène d'alarme), quel est le mieux selon toi ?
    1/ Débrancher voir arracher le haut parleur ?
    2/ Ou chercher l'appareil qui a déclenché cette alarme ? (le détecteur de fumée par exemple)


    Mise à part cet aparté ...
    Essai de repérer dans ton code qu'est-ce qui provoque cette lenteur, le goulot en quelque sorte.
    Si tu as aucun mécanisme te permettant de savoir les temps d'exécutions de certaines parties de code (boucle, requête SQL, instanciation de classe, etc ...) tu peux le faire "à la mano" avec la fonction microtime().
    La doc : microtime()

Discussions similaires

  1. limiter le script
    Par Diabless6 dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 22/03/2007, 15h23
  2. Script désactiver écran de veille
    Par seb76000 dans le forum Windows
    Réponses: 1
    Dernier message: 01/08/2006, 16h23
  3. script avec erreurs
    Par pfrib dans le forum C
    Réponses: 3
    Dernier message: 27/07/2006, 23h36
  4. [Cookies] limiter durée de session
    Par flydragon dans le forum Langage
    Réponses: 12
    Dernier message: 14/06/2006, 16h03
  5. Script en erreur
    Par Elois dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/04/2004, 15h46

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