Beispiel #1
0
 def run(self):
     """ Beschreibung: Startet einen Thread, der laufend prüft (alle 10sek), ob eine Session
                       beendet werden kann. Wenn eine Session innerhalb des Timeouts
                       nicht mehr geantwortet hat, kann sie beendet werden.
         Parameter: self: Zeigt auf eigene Klasse
         Rückgabewert: Keiner
         Exceptions: wirft selbst keine
     """
     log.writeLogLV(config_backend.getLogfile(), "%s-Thread ist bereit...\n" % (self.name), log.LOGLEVEL["debug"])
     while not self.killEvent.isSet():
         try:
             time.sleep(10)
             
             # Wenn vorher keine Sessions existierten kann auch nichts geprüft werden
             counter = 0
             for session in self.sessionTable:
                 if (int(session[3])+config_backend.getSessionTimeout()) < int(datetime.now().strftime("%s")): # sessionzeit + timeout < aktuelle zeit? dann löschen
                     log.writeLogLV(config_backend.getLogfile(),
                             "%s: Lösche Session %s, weil sie zu lange inaktiv ist\n" % (self.name, session[0]),
                             log.LOGLEVEL["debug"])
                     del self.sessionTable[counter]
                     counter += 1
            
         except Exception as e:
             print "Error:", e
             if config_backend.getDebug():
                 print traceback.print_exc()
         
     log.writeLogLV(config_backend.getLogfile(), "%s: Beende Thread...\n" % (self.name), log.LOGLEVEL["info"])     
Beispiel #2
0
 def __init__(self, killEvent, sessionTable):
     """ wenn killEvent gesetzt ist, beendet sich der Thread"""
     threading.Thread.__init__(self)
     self.name = "session-killer"
     self.killEvent = killEvent
     self.timeout = config_backend.getSessionTimeout()
     self.sessionTable = sessionTable
     self.oldSessionTable = copy.deepcopy(self.sessionTable) # enthält die Informationen der Session zum vorherigen Zeitpunkt