X-Git-Url: https://git.llucax.com/software/sercom.git/blobdiff_plain/43ba30161aa509976ea977e28b5141529ac00934..4b7437a8033c0bc66eae8be038000a86dc54c35b:/start-sercom.py diff --git a/start-sercom.py b/start-sercom.py index 45625c8..57ff058 100644 --- a/start-sercom.py +++ b/start-sercom.py @@ -1,4 +1,5 @@ #!/usr/bin/python +# vim: set et sw=4 sts=4 encoding=utf-8 foldmethod=marker : import locale locale.setlocale(locale.LC_ALL, '') @@ -24,6 +25,46 @@ elif exists(join(dirname(__file__), "setup.py")): else: update_config(configfile="prod.cfg",modulename="sercom.config") +from sercom.model import InstanciaDeEntrega, hub +from sercom.finalizer import Finalizer +from threading import Thread +from datetime import datetime +import time +import logging + +log = logging.getLogger('sercom.tester') + +class Queue(object): #{{{ + def __init__(self): + self.go_on = True + def get(self): + while self.go_on: + try: + hub.begin() + try: + select = InstanciaDeEntrega.selectBy(inicio_proceso=None) + instancia = select.orderBy(InstanciaDeEntrega.q.fin)[0] + instancia.inicio_proceso = datetime.now() + finally: + hub.commit() + return instancia.id + except IndexError: + log.debug(_(u'No hay instancias de entrega sin finalizar')) + time.sleep(30) # TODO config? + except Exception, e: + if isinstance(e, SystemExit): + raise + log.exception('Queue: ') + time.sleep(30) # TODO config? + return None +#}}} + +q = Queue() +finalizer = Finalizer(name='juanca', queue=q) +t = Thread(name='juanca', target=finalizer.run) +t.start() + from sercom.controllers import Root start_server(Root()) +