2010-10-31 5 views
2

Lorsque vous êtes connecté à une base de données postgresql en utilisant psycopg et que je tire le câble réseau, je ne reçois aucune erreur. Comment puis-je détecter cela dans le code pour informer l'utilisateur?Python et psycopg détectent l'erreur réseau

Répondre

0

psycopg ne peut pas détecter ce qui se passe avec le réseau. Par exemple, si vous débranchez votre câble Ethernet, le rebrancher et exécuter une requête, tout fonctionnera correctement. Vous devriez certainement avoir une exception quand psycopg essaie d'envoyer du SQL au backend et qu'il n'y a pas de connexion réseau, mais en fonction du problème de réseau, cela peut prendre du temps. Dans le pire des cas, vous devrez attendre un délai TCP sur la connexion (plusieurs dizaines de secondes).

0

Vous obtiendrez certainement une erreur la prochaine fois que vous essayez d'exécuter une requête, donc je ne vous inquiéterais pas si vous ne pouvez pas alerter l'utilisateur à l'instance exacte où il perd sa connexion réseau.

+1

Sauf que je ne reçois aucune erreur. Le code se bloque simplement sur fetchall() et ne déclenche jamais d'erreur. – Rob

Questions connexes