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

Réseau/Web Python Discussion :

Bifurcation dans un programme bien longue


Sujet :

Réseau/Web Python

  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut Bifurcation dans un programme bien longue
    Bonjour,

    J'ai un programme qui réexamine périodiquement une page web en bouclant dans un while, avec un try...except de précaution car il y a souvent des déconnexions sur ma ligne.
    Comme la connexion se rétablit rapidement, je gèle une minute le programme avant de le laisser retourner dans la saisie de la page web.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    while 1:
        try:
            t0 = clock()
            sock = urllib.urlopen(url)
            ( bla bla bla...)
        except IOError:
            print 'Entree dans except=',clock()-t0
            sleep(60)

    Je suis étonné par le temps que met le programme pour entrer dans la partie EXCEPT quand urllib.urlopen(url) échoue à ouvrir la page web: 22 secondes.

    Je me dis qu'il doit y avoir un timeout réglé sur 22 secondes pour le socket que urllib.urlopen doit appeler à un moment ou un autre et qu'il suffirait d'arriver à changer ce timeout pour que le temps ci-dessus soit plus court.
    Je me dis que je pourrais essayer de définir urllib comme une fonction dans mon programme, au lieu de faire import urllib, et que dans cette fonction je pourrais essayer de trouver où écrire quelque chose du genre s.settimeout(0.5)

    Mais je me dis aussi que je me dis trop de choses avec mon niveau sommaire en Python.

    Il est donc préférable que je poste pour demander vos avis et conseils sur le moyen de raccourcir le temps de passage de try à except dans mon programme.

    Merci

  2. #2
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 129
    Points : 160
    Points
    160
    Par défaut
    voila ce qu'en prense google

    http://www.voidspace.org.uk/python/a...francais.shtml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    import socket
    import urllib2
     
    timeout = 10
    # timeout en seconds
    socket.setdefaulttimeout(timeout)
     
    req = urllib2.Request('http://www.voidspace.org.uk')
    handle = urllib2.urlopen(req)
    # cet appel à urllib2.urlopen
    # utilise maintenant le timeout par défaut
    # que nous avons défini dans le module socket

Discussions similaires

  1. Chargement d'une lib partagée C++ dans un programme C
    Par Zero dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 30/09/2003, 16h40
  2. commande shell dans un programme
    Par diefo dans le forum C
    Réponses: 3
    Dernier message: 15/08/2003, 13h37
  3. Réponses: 2
    Dernier message: 24/06/2003, 20h31
  4. [] Utiliser AVI d'une DLL dans mon programme
    Par seb.49 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 02/05/2003, 14h52
  5. [langage] Commande DOS dans un programme
    Par Jibees dans le forum Langage
    Réponses: 15
    Dernier message: 23/04/2003, 12h08

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