[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