]> git.llucax.com Git - software/sercom.git/blobdiff - start-sercom.py
El titulo de "Enunciados" depende de los permisos.
[software/sercom.git] / start-sercom.py
index 57ff0580c8df4add6c428dbb07e57539964e10f9..fd1c7e2f7fc779b89a1de7453881b3697e697913 100644 (file)
@@ -25,7 +25,7 @@ elif exists(join(dirname(__file__), "setup.py")):
 else:
     update_config(configfile="prod.cfg",modulename="sercom.config")
 
-from sercom.model import InstanciaDeEntrega, hub
+from sercom.model import InstanciaDeEntrega, Entrega, AND, hub
 from sercom.finalizer import Finalizer
 from threading import Thread
 from datetime import datetime
@@ -42,8 +42,17 @@ class Queue(object): #{{{
             try:
                 hub.begin()
                 try:
-                    select = InstanciaDeEntrega.selectBy(inicio_proceso=None)
+                    select = InstanciaDeEntrega.select(AND(
+                        InstanciaDeEntrega.q.inicio_proceso == None,
+                        InstanciaDeEntrega.q.fin <= datetime.now()))
                     instancia = select.orderBy(InstanciaDeEntrega.q.fin)[0]
+                    n = Entrega.selectBy(instancia=instancia, fin=None).count()
+                    if n:
+                        log.debug(_(u'Esperando para procesar instancia (%s), '
+                            'faltan probar %s entregas'), instancia.shortrepr(),
+                            n)
+                        time.sleep(30)
+                        continue
                     instancia.inicio_proceso = datetime.now()
                 finally:
                     hub.commit()
@@ -59,10 +68,10 @@ class Queue(object): #{{{
         return None
 #}}}
 
-q = Queue()
-finalizer = Finalizer(name='juanca', queue=q)
-t = Thread(name='juanca', target=finalizer.run)
-t.start()
+#q = Queue()
+#finalizer = Finalizer(name='finalizer', queue=q)
+#t = Thread(name='finalizer', target=finalizer.run)
+#t.start()
 
 from sercom.controllers import Root