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

Symfony PHP Discussion :

sfWebBrowser et timeout [1.x]


Sujet :

Symfony PHP

  1. #1
    Membre habitué Avatar de remyli
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 270
    Points : 151
    Points
    151
    Par défaut sfWebBrowser et timeout
    Bonjour à tous.

    J'ai problème avec le sfWebBrowser qui ne permet pas (apparemment) de définir un timeout.

    Je m'explique :
    Mon site utilise des flux partenaires (rss ou xml par exemple) pour obtenir du contenu.
    Donc à chaque requête de mes internautes, mon site fait plusieurs requêtes vers des sites partenaires.
    Or il suffit que un de ces partenaire soit down pour que mon script mette plus de 60 seconde pour se terminer !!!! (entre 60 seconde et 25 min suivant le partenaire)
    Je suis actuellement en train de chercher des solutions pour éviter ce problème.

    La solution sur la quelle je travail actuellement est de dire : "Si mon partenaire ne répond pas en moins de 10 seconde , Je laisse tomber".

    Pour interroger mes partenaires j'utilise le sfWebBrowser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $b = new sfWebBrowser();
    $b->get($url, $params);
    Mais sfWebBrowser ne semble pas implémenter de fonctionnalité comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $b->setTimeOut(10seconde);
    J'imagine que la solution est autour du sfWebBrowser mais peut être qu'il existe des mécanisme que je ne connais pas !
    Si quelqu'un a une idée
    Orthographe => Message Privé constructif svp

  2. #2
    Membre habitué Avatar de remyli
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 270
    Points : 151
    Points
    151
    Par défaut solutions alternatives
    J'ouvre une discution dans une autre partie du forum pour trouver des solutions alternatives.

    http://www.developpez.net/forums/d83...t/#post4762695
    Orthographe => Message Privé constructif svp

  3. #3
    Membre averti
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Points : 396
    Points
    396
    Par défaut
    Salut,

    Peut être une solution :

    http://www.symfony-project.org/plugi...bBrowserPlugin

    J'ai vu que cette classe instanciait une autre classe sfCurlAdapter, qui contient un paramètre timeout :

    http://trac.symfony-project.org/brow...pter.class.php

    J'espère avoir fait avancer ton Schmilblick...

    A+

  4. #4
    Membre habitué Avatar de remyli
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 270
    Points : 151
    Points
    151
    Par défaut
    En fait le sfWebBrower que j'utilise déjà est le sfWebBrowser plugin ..... Me reste à découvrir comment activer ce time out !
    Orthographe => Message Privé constructif svp

  5. #5
    Membre actif

    Homme Profil pro
    Software Engineer
    Inscrit en
    Août 2004
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2004
    Messages : 173
    Points : 220
    Points
    220
    Par défaut
    A priori ca se passe dans l'adapter sfCurlAdapter (voir le constructeur de la classe) et on lui passe l'option via sfWebBrowser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $b = new sfWebBrowser(array(), 'sfCurlAdapter', array('timeout' => 30));
    A tester si ca fonctionne. sinon faut regarder plus en détail le constructeur de sfCurlAdapter

  6. #6
    Membre habitué Avatar de remyli
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 270
    Points : 151
    Points
    151
    Par défaut version
    Je n'ai pas la bonne version du sfWebBrowser plugin

    je doit avoir la 1.0.1 du 2007-03-27 alors que le site propose la 1.1.2
    Et ma version ne gère pas le timeout.

    Comment on met à jour un plugin ?
    Orthographe => Message Privé constructif svp

  7. #7
    Membre habitué Avatar de remyli
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 270
    Points : 151
    Points
    151
    Par défaut Final
    Bon j'ai simplement copier le code du nouveau sfCurlAdapter.class.php par dessus mon ancien. Et ça marche !

    Au passage, je pense que le paramètre est 'Timeout' avec une majuscule..
    Dans le doute :

    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
     
    public function executeTest2()
        {
            $timeout = 10;
            $b = new sfWebBrowser(array(),'sfCurlAdapter',array('timeout'=>$timeout, 'Timeout'=>$timeout));
            $url = 'http://localhost/nolimite'; // boucle infinie
            $t = new sfTimer();
            try
            {
              $r = $b->get($url)->responseIsError();
     
              if (!$r)
              {
                // Successful response (eg. 200, 201, etc)
              }
              else
              {
                // Error response (eg. 404, 500, etc)
              }
            }
            catch (Exception $e)
            {
              // Adapter error (eg. Host not found)
            }
            $time = $t->getElapsedTime();
            echo $time;
        }

    Donc; Pour mettre en place le sfWebBrowser avec un timeout.
    Il faut :
    • sfWebBrowser plugin version 1.1.2
    • CURL (ubuntu)


    Merci à Vivian Pennel et mathieu44800 pour leur aide
    Orthographe => Message Privé constructif svp

  8. #8
    Membre actif

    Homme Profil pro
    Software Engineer
    Inscrit en
    Août 2004
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2004
    Messages : 173
    Points : 220
    Points
    220
    Par défaut
    De rien .

    Sinon pour mettre à jour un plugin, utilise la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    plugin:upgrade [nom]

  9. #9
    Membre averti
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Points : 396
    Points
    396
    Par défaut
    Quand même poussé ton souci...

    Au passage penses au tag [Résolu] et content d'avoir contribué...

    A+

    Mathieu

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

Discussions similaires

  1. [TOMCAT] Problème de timeout d'une servlet
    Par tuxor dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 18/09/2007, 12h04
  2. Alter Session : question de TimeOut
    Par Filippo dans le forum Administration
    Réponses: 4
    Dernier message: 13/05/2004, 17h42
  3. [JSP]recuperer session-timeout dans web.xml
    Par seb_fou dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 07/05/2004, 16h01
  4. [Sockets] Timeout sur accept() ?
    Par MikB dans le forum Développement
    Réponses: 2
    Dernier message: 30/12/2003, 17h22
  5. Ftp login & Timeout
    Par MSP dans le forum Modules
    Réponses: 6
    Dernier message: 29/08/2003, 12h55

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