]> git.ipfire.org Git - oddments/cappie.git/commitdiff
Add garbage collector event.
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 29 Apr 2010 17:32:17 +0000 (19:32 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 29 Apr 2010 17:32:17 +0000 (19:32 +0200)
cappie/queue.py

index cdd0090b063edd845507540e79f9ffc12b03f169..4d22553644a3945c3179ffd6ad700f30632ef3ec 100644 (file)
@@ -25,10 +25,11 @@ from threading import Thread
 
 from database import Database
 from errors import *
+from events import *
 
 class Queue(Thread):
        heartbeat = 1.0
-       maxitems = 100
+       maxitems = 10000
 
        def __init__(self, log):
                Thread.__init__(self)
@@ -39,6 +40,7 @@ class Queue(Thread):
                self.__queue = []
 
                self.db = Database(log)
+               self.lastgc = None
 
        def __len__(self):
                return self.length
@@ -64,6 +66,8 @@ class Queue(Thread):
                                time.sleep(self.heartbeat)
                                continue
 
+                       self._checkGc()
+
                        event = self.__queue.pop(0)
                        self.log.debug("Processing queue event: %s" % event)
                        try:
@@ -80,3 +84,8 @@ class Queue(Thread):
 
                # Wait until queue handled all events
                self.join()
+
+       def _checkGc(self):
+               if not self.lastgc or self.lastgc <= (time.time() - DB_GC_INTERVAL):
+                       self.add(EventGarbageCollector(self.db, self.log))
+                       self.lastgc = time.time()