def _expire_sessions(self): from porcupine.core.runtime import logger while self._is_active: for sessionid in self._list: session = self.get_session(sessionid, revive=False) if time.time() - session._last_accessed > self.timeout: logger.debug('Expiring Session: %s' % sessionid) session.terminate() logger.debug('Total active sessions: %s' % \ str(len(self._list))) else: break time.sleep(1.0)
def _remove_inactive_sessions(self): expire_threshold = (time.time() - self.timeout - self.revive_threshold) # get inactive sessions condition = ('modified', (None, [expire_threshold, False])) cursor = db._db.query((condition, )) cursor.set_scope(self.session_container_id) cursor.enforce_permissions = False sessions = [session for session in cursor] #print(sessions) cursor.close() for session in sessions: logger.debug('Expiring Session: %s' % session.id) session.terminate()
def _expire_sessions(self): from porcupine.core.runtime import logger while self._is_active: expire_threshold = time.time() - self.timeout - \ self.revive_threshold for sessionid in self._list: session = self.get_session(sessionid) if session._last_accessed < expire_threshold: logger.debug('Expiring Session: %s' % sessionid) session.terminate() logger.debug('Total active sessions: %s' % \ str(len(self._list))) else: break time.sleep(3.0)
def _expire_sessions(self): from porcupine.core.runtime import logger while self._is_active: try: # get inactive sessions cursor = db._db.join(( ('_parentid', '_sessions'), ('modified', (None, time.time() - self.timeout))), None) cursor.fetch_all = True sessions = [session for session in cursor] cursor.close() for session in sessions: logger.debug('Expiring Session: %s' % session.id) session.terminate() except Exception, e: logger.error('Error in session expiration thread: %s' % e) time.sleep(3.0)