]> git.llucax.com Git - software/sercom-old.git/commitdiff
Se agrega un chequeo a sc_deliver para que no finalice la entrega hasta que no
authorLeandro Lucarella <llucax@gmail.com>
Thu, 10 Mar 2005 03:05:33 +0000 (03:05 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Thu, 10 Mar 2005 03:05:33 +0000 (03:05 +0000)
se termine de compilar todos sus intentos. Ya no es más necesario especular con
darle un tiempo extra.

debian/README.Debian
debian/sercom.cron.d
src/sc_deliver
src/sercom/sqlo.py

index 3770ed0884330073c4a514f879081a48557f0e68..93f6358f6515f91e3ca5ca5899c1f7acbf0ec3c5 100644 (file)
@@ -14,10 +14,7 @@ respectivamente.
 
 El programa sc_deliver, encargado de cerrar una entrega y tomar el último
 intento exitoso como entrega final a corregir, corre todos los días a las
-23:30hs, puede modificarlo en el archivo /etc/cron.d/sercom.
-Puede ser necesario modificarlo si el corrector es muy lento compilando y no
-llega terminar de compilar las cosas que, normalmente, se terminan de entregar a
-las 20:00hs.
+20:30hs, puede modificarlo en el archivo /etc/cron.d/sercom.
 
 Tambien puede cambiar la frecuencia de rotación de logs en
 /etc/logrotate.d/sercom.
index 9b5e7c7c2b460268ccc7f7c1714584bb55ae4e09..0a53392374e8811ba47b8252d9b70835fc5f7230 100644 (file)
@@ -2,4 +2,4 @@
 
 # Ejecuta sc_deliver todos los días después a las 23:30hs
 # m h  dom mon dow user    command
-30  23  *   *   *  sercom  /usr/sbin/sc_deliver
+30  20  *   *   *  sercom  /usr/sbin/sc_deliver
index 6377f003e4a7c9643c1c697f5542d4bf508f08b3..3979a86b32481d242a156734d30491087eb02584 100755 (executable)
@@ -2,6 +2,8 @@
 # -*- encoding: iso-8859-1 -*-
 # vim: set et sw=4 sts=4 :
 
+# Módulos estándar
+import time
 # Módulos locales
 import sercom
 import sercom.sqlo
@@ -39,8 +41,13 @@ log.info('Iniciado')
 # Utilizo el directorio de datos como base para todos los SQLObjects
 sercom.sqlo.dir_base = conf.get('general', 'data_dir')
 
+# Atajo
+intervalo = float(conf.get('general', 'intervalo'))
+
 # Busco entregas pendientes
 for entrega in Entrega.getPendientes(conn):
+    while Intento.faltaCompilar(entrega, conn):
+        time.sleep(intervalo)
     log.info('Procesando entrega %d.%d.%d', entrega.curso.curso,
         entrega.nroEjercicio, entrega.entrega)
     for inscripto in Inscripto.selectBy(cursoID=entrega.cursoID, activo=True,
index de2347cb9faea9b4bb9b616dd8d08bb902b160f2..0c0b59d2e7e7fcc20eae403442df5b58ba1b6852 100644 (file)
@@ -155,6 +155,14 @@ class Intento(BaseSQLObject):
         except IndexError:
             return None
 
+    @classmethod
+    def faltaCompilar(cls, entrega, connection=None):
+        no_compilados = cls.selectBy(entregaID=entrega.id, compila=None,
+            connection=connection).count()
+        no_probados = cls.selectBy(entregaID=entrega.id, compila=True,
+            finPruebas=None, connection=connection).count()
+        return no_compilados + no_probados
+
     def _get_path(self):
         curso = self.inscripto.curso
         entrega = self.entrega