]> git.llucax.com Git - software/sercom-old.git/blobdiff - src/sc_deliver
Se agrega un timeout a sqlite para que espere si esta lockeada la DB.
[software/sercom-old.git] / src / sc_deliver
index 3979a86b32481d242a156734d30491087eb02584..cd4bc00a0fc90f776057891cdcbe79baf748195a 100755 (executable)
@@ -30,9 +30,17 @@ a su intento %d, recibido el %s.
     mail['Return-Path'] = conf.get('mail', 'admin')
     mail['X-Mailer'] = 'sercom ' + sercom.VERSION
     mail['X-Priority'] = '5'
     mail['Return-Path'] = conf.get('mail', 'admin')
     mail['X-Mailer'] = 'sercom ' + sercom.VERSION
     mail['X-Priority'] = '5'
-    smtp = smtplib.SMTP(conf.get('mail', 'smtp'))
-    smtp.sendmail(mail['From'], mail['To'], mail.as_string())
-    smtp.close()
+    sent = False
+    while not sent:
+        try:
+            smtp = smtplib.SMTP(conf.get('mail', 'smtp'))
+            smtp.sendmail(mail['From'], mail['To'], mail.as_string())
+            smtp.close()
+            sent = True
+        except smtplib.SMTPException, e:
+            log.warning('No se pudo enviar el mail a %s (%s)',
+                inscripto.padron, inscripto.mail)
+            time.sleep(1)
 
 # Inicializo
 conf, conn, log = sercom.init('deliver')
 
 # Inicializo
 conf, conn, log = sercom.init('deliver')
@@ -46,7 +54,11 @@ intervalo = float(conf.get('general', 'intervalo'))
 
 # Busco entregas pendientes
 for entrega in Entrega.getPendientes(conn):
 
 # Busco entregas pendientes
 for entrega in Entrega.getPendientes(conn):
+    log.debug('Hay una entrega pendiente: %d.%d.%d', entrega.curso.curso,
+        entrega.nroEjercicio, entrega.entrega)
     while Intento.faltaCompilar(entrega, conn):
     while Intento.faltaCompilar(entrega, conn):
+        log.debug('Esperando que termine de compilar, faltan %d intentos',
+            Intento.faltaCompilar(entrega, conn))
         time.sleep(intervalo)
     log.info('Procesando entrega %d.%d.%d', entrega.curso.curso,
         entrega.nroEjercicio, entrega.entrega)
         time.sleep(intervalo)
     log.info('Procesando entrega %d.%d.%d', entrega.curso.curso,
         entrega.nroEjercicio, entrega.entrega)
@@ -77,3 +89,4 @@ for entrega in Entrega.getPendientes(conn):
     log.debug('Entrega finalizada')
     entrega.finalizada = True
 
     log.debug('Entrega finalizada')
     entrega.finalizada = True
 
+log.info('Finalizado')