2009-10-20 4 views
2

Y a-t-il un moyen de détecter et de gérer les connexions fermées par l'utilisateur pendant le traitement de la demande?Détecter une connexion prématurément fermée dans web.py

J'ai essayé de définir le gestionnaire unloadhook, mais il n'est pas appelé dans ce cas. Il est seulement appelé après que la demande a été achevée avec succès:

 

class handler: 
    def __init__(self): 
     pass 

    def GET(self): 
     try: 
      while(True): 
       pass 
     except Exception, e: 
      logger.debug(e) 

def unload(): 
    logger.debug('unloaded') 

try: 
    app = web.application(urls, globals()) 
    app.add_processor(web.unloadhook(unload)) 
    application = app.wsgifunc() 

except Exception, e: 
    logger.debug(e) 
 

j'ouvrir l'application dans un navigateur et quand il se met à tourner dans la boucle pendant que je casse la demande, mais pas une exception est levée.

Répondre

1

Définissez un délai d'expiration et attrapez un type d'exception qui couvre spécifiquement le cas d'une connexion fermée.

Voir this on exception handling in Python

+0

Merci, mais il ne semble pas fonctionner (voir ma question mise à jour ci-dessus) – Leonid

+0

Je ne vois pas où vous définissez un délai d'attente. –

+0

J'ai défini Timeout dans httpd.conf Je ne sais pas si vous vouliez que ce soit défini dans webpy, mais si c'est le cas, je ne pouvais pas trouver comment le faire. – Leonid

Questions connexes