]> git.llucax.com Git - z.facultad/75.52/sercom.git/blobdiff - start-sercom.py
Presento un poco mejor la Corrida de una Entrega.
[z.facultad/75.52/sercom.git] / start-sercom.py
index b32eb45d1aea21f6b7a84fd76903bd7ff62ca92e..57ff0580c8df4add6c428dbb07e57539964e10f9 100644 (file)
@@ -1,4 +1,9 @@
 #!/usr/bin/python
 #!/usr/bin/python
+# vim: set et sw=4 sts=4 encoding=utf-8 foldmethod=marker :
+
+import locale
+locale.setlocale(locale.LC_ALL, '')
+
 import pkg_resources
 pkg_resources.require("TurboGears")
 
 import pkg_resources
 pkg_resources.require("TurboGears")
 
@@ -13,13 +18,53 @@ import sys
 # look for setup.py in this directory. If it's not there, this script is
 # probably installed
 if len(sys.argv) > 1:
 # look for setup.py in this directory. If it's not there, this script is
 # probably installed
 if len(sys.argv) > 1:
-    update_config(configfile=sys.argv[1], 
+    update_config(configfile=sys.argv[1],
         modulename="sercom.config")
 elif exists(join(dirname(__file__), "setup.py")):
     update_config(configfile="dev.cfg",modulename="sercom.config")
 else:
     update_config(configfile="prod.cfg",modulename="sercom.config")
 
         modulename="sercom.config")
 elif exists(join(dirname(__file__), "setup.py")):
     update_config(configfile="dev.cfg",modulename="sercom.config")
 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())
 from sercom.controllers import Root
 
 start_server(Root())
+