2010-12-06 6 views
0

Lorsque je me connecte à une base de données, j'envoie des messages sur les erreurs de connexion. Le problème est que Python essaie si souvent de se connecter à la base de données que je suis inondé par des mails (des centaines par minute) dans le cas d'erreurs. Pour clarifier:Problème avec le courrier inondé lors de la connexion à la base de données

try: 
    #connect to db 
except psycopg2.Error, msg: 
    # write error mail 

Maintenant, je veux que python envoie un seul courrier par « session d'erreur », alors j'ai essayé:

mail_sent = False 
try: 
    #connect to db 
    mail_sent = False 
except [..]: 
    if not mail_sent: 
     #send mail 
     sent_mail = True 

Mais cela ne fonctionne pas parce que le code est dans un infini loop (SocketServer) et sent_mail est défini sur False à chaque cycle.

Quelqu'un at-il une idée de comment résoudre ce problème?

+0

Utilisez-vous un pool de connexions? – kevpie

+0

Oui, en utilisant pgpool – adnek

Répondre

0

Utilisez un file lock pour vous assurer une seule session de tester pistes et ajouter un sleep() pour vous assurer de ne tester tous, par exemple, à 5 minutes.

Questions connexes