etwist/server.py
changeset 2685 0518ca8f63e3
parent 2670 4747145ff69c
child 2694 4303ff921a9b
equal deleted inserted replaced
2684:c84691380dd4 2685:0518ca8f63e3
    20 from twisted.internet import reactor, task, threads
    20 from twisted.internet import reactor, task, threads
    21 from twisted.internet.defer import maybeDeferred
    21 from twisted.internet.defer import maybeDeferred
    22 from twisted.web2 import channel, http, server, iweb
    22 from twisted.web2 import channel, http, server, iweb
    23 from twisted.web2 import static, resource, responsecode
    23 from twisted.web2 import static, resource, responsecode
    24 
    24 
    25 from cubicweb import ObjectNotFound
    25 from cubicweb import ObjectNotFound, CW_EVENT_MANAGER
    26 from cubicweb.web import (AuthenticationError, NotFound, Redirect,
    26 from cubicweb.web import (AuthenticationError, NotFound, Redirect,
    27                        RemoteCallFailed, DirectResponse, StatusResponse,
    27                           RemoteCallFailed, DirectResponse, StatusResponse,
    28                        ExplicitLogin)
    28                           ExplicitLogin)
    29 from cubicweb.web.application import CubicWebPublisher
    29 from cubicweb.web.application import CubicWebPublisher
    30 
    30 
    31 from cubicweb.etwist.request import CubicWebTwistedRequestAdapter
    31 from cubicweb.etwist.request import CubicWebTwistedRequestAdapter
    32 
    32 
    33 
    33 
   107                 # requests
   107                 # requests
   108                 self.pyro_daemon = self.appli.repo.pyro_register()
   108                 self.pyro_daemon = self.appli.repo.pyro_register()
   109                 self.pyro_listen_timeout = 0.02
   109                 self.pyro_listen_timeout = 0.02
   110                 start_task(1, self.pyro_loop_event)
   110                 start_task(1, self.pyro_loop_event)
   111             self.appli.repo.start_looping_tasks()
   111             self.appli.repo.start_looping_tasks()
   112         self.url_rewriter = self.appli.vreg['components'].select_object('urlrewriter')
   112         self.set_url_rewriter()
       
   113         CW_EVENT_MANAGER.bind('after-source-reload', self.set_url_rewriter)
   113         interval = min(config['cleanup-session-time'] or 120,
   114         interval = min(config['cleanup-session-time'] or 120,
   114                        config['cleanup-anonymous-session-time'] or 720) / 2.
   115                        config['cleanup-anonymous-session-time'] or 720) / 2.
   115         start_task(interval, self.appli.session_handler.clean_sessions)
   116         start_task(interval, self.appli.session_handler.clean_sessions)
       
   117 
       
   118     def set_url_rewriter(self):
       
   119         self.url_rewriter = self.appli.vreg['components'].select_object('urlrewriter')
   116 
   120 
   117     def shutdown_event(self):
   121     def shutdown_event(self):
   118         """callback fired when the server is shutting down to properly
   122         """callback fired when the server is shutting down to properly
   119         clean opened sessions
   123         clean opened sessions
   120         """
   124         """