]> git.llucax.com Git - software/sercom.git/blob - start-sercom.py
diagrama de entregas
[software/sercom.git] / start-sercom.py
1 #!/usr/bin/python
2 # vim: set et sw=4 sts=4 encoding=utf-8 foldmethod=marker :
3
4 import locale
5 locale.setlocale(locale.LC_ALL, '')
6
7 import pkg_resources
8 pkg_resources.require("TurboGears")
9
10 from turbogears import update_config, start_server
11 import cherrypy
12 cherrypy.lowercase_api = True
13 from os.path import *
14 import sys
15
16 # first look on the command line for a desired config file,
17 # if it's not on the command line, then
18 # look for setup.py in this directory. If it's not there, this script is
19 # probably installed
20 if len(sys.argv) > 1:
21     update_config(configfile=sys.argv[1],
22         modulename="sercom.config")
23 elif exists(join(dirname(__file__), "setup.py")):
24     update_config(configfile="dev.cfg",modulename="sercom.config")
25 else:
26     update_config(configfile="prod.cfg",modulename="sercom.config")
27
28 from sercom.model import InstanciaDeEntrega, hub
29 from sercom.finalizer import Finalizer
30 from threading import Thread
31 from datetime import datetime
32 import time
33 import logging
34
35 log = logging.getLogger('sercom.tester')
36
37 class Queue(object): #{{{
38     def __init__(self):
39         self.go_on = True
40     def get(self):
41         while self.go_on:
42             try:
43                 hub.begin()
44                 try:
45                     select = InstanciaDeEntrega.selectBy(inicio_proceso=None)
46                     instancia = select.orderBy(InstanciaDeEntrega.q.fin)[0]
47                     instancia.inicio_proceso = datetime.now()
48                 finally:
49                     hub.commit()
50                 return instancia.id
51             except IndexError:
52                 log.debug(_(u'No hay instancias de entrega sin finalizar'))
53                 time.sleep(30) # TODO config?
54             except Exception, e:
55                 if isinstance(e, SystemExit):
56                     raise
57                 log.exception('Queue: ')
58                 time.sleep(30) # TODO config?
59         return None
60 #}}}
61
62 #q = Queue()
63 #finalizer = Finalizer(name='juanca', queue=q)
64 #t = Thread(name='juanca', target=finalizer.run)
65 #t.start()
66
67 from sercom.controllers import Root
68
69 start_server(Root())
70