cubicweb/server/repository.py
changeset 12028 08c866d2f11d
parent 12027 c62c80f20a82
child 12029 3d9883a6068f
--- a/cubicweb/server/repository.py	Fri Mar 10 18:24:40 2017 +0100
+++ b/cubicweb/server/repository.py	Fri Mar 10 14:04:26 2017 +0100
@@ -30,7 +30,6 @@
 
 from warnings import warn
 from itertools import chain
-from time import time, localtime, strftime
 from contextlib import contextmanager
 from logging import getLogger
 
@@ -44,7 +43,6 @@
 
 from cubicweb import (CW_MIGRATION_MAP, QueryError,
                       UnknownEid, AuthenticationError, ExecutionError,
-                      BadConnectionId,
                       UniqueTogetherError, ViolatedConstraint)
 from cubicweb import set_log_methods
 from cubicweb import cwvreg, schema, server
@@ -220,8 +218,6 @@
         self._scheduler = scheduler
 
         self.app_instances_bus = NullEventBus()
-        # dictionary of opened sessions
-        self._sessions = {}
 
         # list of functions to be called at regular interval
         # list of running threads
@@ -390,31 +386,15 @@
                 raise Exception('Is the database initialised ? (cause: %s)' % ex)
         return appschema
 
-    def _prepare_startup(self):
-        """Prepare "Repository as a server" for startup.
-
-        * register session clean up task.
-        """
-        if not (self.config.creating or self.config.repairing
-                or self.config.quick_start):
-            # register a task to cleanup expired session
-            if self._scheduler is not None:
-                self.cleanup_session_time = self.config['cleanup-session-time'] or 60 * 60 * 24
-                assert self.cleanup_session_time > 0
-                cleanup_session_interval = min(60 * 60, self.cleanup_session_time / 3)
-                self.looping_task(cleanup_session_interval, self.clean_sessions)
-
     def run_scheduler(self):
         """Start repository scheduler after preparing the repository for that.
 
         * trigger server startup hook,
-        * register session clean up task,
         * start the scheduler *and block*.
 
         XXX Other startup related stuffs are done elsewhere. In Repository
         XXX __init__ or in external codes (various server managers).
         """
-        self._prepare_startup()
         assert self._scheduler is not None, \
             "This Repository is not intended to be used as a server"
         self.info(
@@ -675,7 +655,6 @@
         session = Session(user, self)
         user._cw = user.cw_rset.req = session
         user.cw_clear_relation_cache()
-        self._sessions[session.sessionid] = session
         self.info('opened session %s for user %s', session.sessionid, login)
         with session.new_cnx() as cnx:
             self.hm.call_hooks('session_open', cnx)
@@ -690,20 +669,6 @@
 
     # session handling ########################################################
 
-    def clean_sessions(self):
-        """close sessions not used since an amount of time specified in the
-        configuration
-        """
-        mintime = time() - self.cleanup_session_time
-        self.debug('cleaning session unused since %s',
-                   strftime('%H:%M:%S', localtime(mintime)))
-        nbclosed = 0
-        for session in list(self._sessions.values()):
-            if session.timestamp < mintime:
-                session.close()
-                nbclosed += 1
-        return nbclosed
-
     @contextmanager
     def internal_cnx(self):
         """Context manager returning a Connection using internal user which have