etwist/server.py
changeset 4960 26b2468a1e73
parent 4914 dcb055f32d9b
child 5062 5691fd8697cd
equal deleted inserted replaced
4959:2cb79b8a1aea 4960:26b2468a1e73
     9 
     9 
    10 import sys
    10 import sys
    11 import os
    11 import os
    12 import select
    12 import select
    13 import errno
    13 import errno
    14 import hotshot
       
    15 from time import mktime
    14 from time import mktime
    16 from datetime import date, timedelta
    15 from datetime import date, timedelta
    17 from urlparse import urlsplit, urlunsplit
    16 from urlparse import urlsplit, urlunsplit
    18 
    17 
    19 from twisted.internet import reactor, task, threads
    18 from twisted.internet import reactor, task, threads
   111         # when we have an in-memory repository, clean unused sessions every XX
   110         # when we have an in-memory repository, clean unused sessions every XX
   112         # seconds and properly shutdown the server
   111         # seconds and properly shutdown the server
   113         if config.repo_method == 'inmemory':
   112         if config.repo_method == 'inmemory':
   114             reactor.addSystemEventTrigger('before', 'shutdown',
   113             reactor.addSystemEventTrigger('before', 'shutdown',
   115                                           self.shutdown_event)
   114                                           self.shutdown_event)
   116             # monkey patch start_looping_task to get proper reactor integration
       
   117             #self.appli.repo.__class__.start_looping_tasks = start_looping_tasks
       
   118             if config.pyro_enabled():
   115             if config.pyro_enabled():
   119                 # if pyro is enabled, we have to register to the pyro name
   116                 # if pyro is enabled, we have to register to the pyro name
   120                 # server, create a pyro daemon, and create a task to handle pyro
   117                 # server, create a pyro daemon, and create a task to handle pyro
   121                 # requests
   118                 # requests
   122                 self.pyro_daemon = self.appli.repo.pyro_register()
   119                 self.pyro_daemon = self.appli.repo.pyro_register()
   494             uid = getpwnam(config['uid']).pw_uid
   491             uid = getpwnam(config['uid']).pw_uid
   495         os.setuid(uid)
   492         os.setuid(uid)
   496     root_resource.start_service()
   493     root_resource.start_service()
   497     logger.info('instance started on %s', root_resource.base_url)
   494     logger.info('instance started on %s', root_resource.base_url)
   498     if config['profile']:
   495     if config['profile']:
   499         prof = hotshot.Profile(config['profile'])
   496         import cProfile
   500         prof.runcall(reactor.run)
   497         cProfile.runctx('reactor.run()', globals(), locals(), config['profile'])
   501     else:
   498     else:
   502         reactor.run()
   499         reactor.run()