[cpif] r318 - in trunk: . backend
svn at argo.es
svn at argo.es
Mon Jul 30 21:47:28 CEST 2007
Author: jcea
Date: Mon Jul 30 21:47:28 2007
New Revision: 318
Log:
Ahora intentamos enviar los mensajes de correo al momento,
si esperar el ciclo periodico de un minuto. Pero si hay errores,
volvemos a reintentarlo cada minuto.
Si hay errores en el envio de correo, seguimos reintentando
eternamente, pero guardamos el log del error, para su analisis.
Modified:
trunk/TODO
trunk/backend/smtp.py
Modified: trunk/TODO
==============================================================================
--- trunk/TODO (original)
+++ trunk/TODO Mon Jul 30 21:47:28 2007
@@ -285,9 +285,6 @@
todos los mensajes siguientes se encolaran. Si es algo persistente,
no saldra correo.
-- 20070715: Cuando se encola un mensaje de correo electronico, puede
- tardar hasta un minuto en intentar enviarse.
-
- 20070715: FRONTAL WEB: Poder ver los errores que han sufrido los
mensajes de correo en cola.
Modified: trunk/backend/smtp.py
==============================================================================
--- trunk/backend/smtp.py (original)
+++ trunk/backend/smtp.py Mon Jul 30 21:47:28 2007
@@ -4,6 +4,10 @@
from globales import smtp_server,smtp_server_port,smtp_email_sender,smtp_use_tls,smtp_auth_user,smtp_auth_passwd
+import threading
+signal=threading.Event()
+del threading
+
def process_queue() :
@monitor
def outgoing_pending(conn) :
@@ -60,9 +64,11 @@
try :
process_queue()
except :
- #raise
- pass
- time.sleep(60)
+ import sys,traceback
+ print >>sys.stderr,"EXCEPCION:",time.ctime()
+ print >>sys.stderr,traceback.format_exc()
+ signal.wait(60)
+ signal.clear() # Race condition but unimportant
def enqueue(conn,destinations,message) :
from durus.persistent_list import PersistentList
@@ -74,4 +80,6 @@
message_obj=PersistentList()
message_obj.append(message)
emails[k]=(destinations,message_obj,None)
+
+ signal.set()
More information about the cpif
mailing list