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 :

Attente avant lancement d'exception


Sujet :

Langage PHP

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 248
    Points : 231
    Points
    231
    Par défaut Attente avant lancement d'exception
    Bonjour,

    J'utilise des webservices pour la récupération d'informations dans un BDD avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    try {
         require ('webservices/webservices.php');
         $this -> listEtu = $ws ->   getGrpEtudiantsList  ($this -> userCode, 'S', $this -> codeEnseignement , 'TD', $this -> grp , '001') ;
    }
    catch ( Exception $e ) {
         $this -> error = $this -> erreurWSetudiantsLong2 ;
    }
    Malheureusement, les webservices mettent parfois du temps à répondre. Résultat le script s'arrête et le message d'erreur s'affiche.

    J'aimerai donc que le script fasse plusieurs essais avant de lancer l'exception.

    Auriez-vous une solution à me proposer ?

    Merci par avance.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 248
    Points : 231
    Points
    231
    Par défaut
    J'ai trouvé une solution... Cela ne me parait pas des plus propre mais cela semble bien fonctionner...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    public $tryWS               = 0 ;
    public $tryWSMax         = 10 ;
     
    public function listGroups() {
         /* Recuperation de la liste des groupes */
         for ( $this -> tryWS ; $this -> tryWS < $this -> tryWSMax ; $this -> tryWS ) {
              $this -> listGroupsWebservices() ;
         } 
     
         /* Affichage de la page */
         require ('templates/view/tmpl.list_groups.php') ;
    }
     
    protected function listGroupsWebservices() {
         /* Recuperation des informations via les webservices */
         try {
              require ('webservices/webservices.php');
              $this -> listGrp = $ws -> getListGrpsList($this -> userCode, '1');
              $this -> tryWS = $this -> tryWSMax ;
              $this -> error = NULL ; 
         }
         catch ( Exception $e ) {
              $this -> tryWS++ ;
              sleep(1);
              $this -> error = $this -> erreurWSgroupes ;
         }
    }
    J'ai donc une boucle qui essaye de se connecter 10 fois avec une seconde de pause à chaque fois. Au bout de 10 essais, je lance le message d'erreur.

    Si quelqu'un a une idée pour faire mieux je suis preneur !

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 243
    Points
    20 243
    Par défaut
    Peut être rajouter un break dans le for quand tu as réussi à te connecter histoire de pas faire des itérations inutilement.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 248
    Points : 231
    Points
    231
    Par défaut
    Grâce à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this -> tryWS = $this -> tryWSMax ;
    Je n'ai pas d'itération inutile du coup...

    Je ne pense pas que cela fonctionne pour sortir de la structure try/catch ??

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [c#] Préinstaller framework avant lancement exe
    Par daner06 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/08/2007, 17h42
  2. Réponses: 6
    Dernier message: 25/04/2007, 13h09
  3. Attente avant poursuite exécution
    Par jeannot1974 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 03/01/2007, 15h16
  4. Temps de réalisation d'une requete avant lancement
    Par jcachico dans le forum Outils
    Réponses: 6
    Dernier message: 12/04/2006, 15h27
  5. [Socket] Attente avant l'envoi ?
    Par Invité dans le forum C++
    Réponses: 1
    Dernier message: 21/09/2005, 18h59

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