[rhmessaging-commits] rhmessaging commits: r4352 - mgmt/newdata/mint/python/mint.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Mon Sep 27 17:42:52 EDT 2010


Author: justi9
Date: 2010-09-27 17:42:52 -0400 (Mon, 27 Sep 2010)
New Revision: 4352

Modified:
   mgmt/newdata/mint/python/mint/vacuum.py
Log:
For bz 637977, perform vacuum operations on a separate thread

Modified: mgmt/newdata/mint/python/mint/vacuum.py
===================================================================
--- mgmt/newdata/mint/python/mint/vacuum.py	2010-09-27 17:55:18 UTC (rev 4351)
+++ mgmt/newdata/mint/python/mint/vacuum.py	2010-09-27 21:42:52 UTC (rev 4352)
@@ -9,33 +9,30 @@
             if self.stop_requested:
                 break
 
-            up = VacuumUpdate(self.app.model)
-            self.app.update_thread.enqueue(up)
+            try:
+                self.vacuum()
+            except:
+                log.exception("Vacuum failed")
 
-            sleep(60 * 60)
+            now = datetime.now()
+            secs = 3600 - ((now.minute * 60) + now.second)
+            then = now + timedelta(seconds=secs)
 
-class VacuumUpdate(Update):
-    def do_process(self, cursor, stats):
-        log.info("Vacuuming tables")
+            log.info("Next vacuum is at %s", then.strftime("%H:%M"))
 
-        conn = self.model.app.update_thread.conn
+            sleep(secs + 1)
 
-        level = conn.isolation_level
+    def vacuum(self):
+        conn = self.app.database.get_connection()
         conn.set_isolation_level(0)
 
-        for pkg in self.model._packages:
-            for cls in pkg._classes:
-                if cls._storage == "none":
-                    continue
+        try:
+            cursor = conn.cursor()
 
-                self.vacuum(cursor, cls)
+            log.info("Starting vacuum")
 
-        conn.set_isolation_level(level)
+            cursor.execute("vacuum analyze")
 
-        log.info("Vacuumed tables")
-
-    def vacuum(self, cursor, cls):
-        sql = "vacuum analyze verbose %s"
-
-        cursor.execute(sql % cls.sql_table.identifier)
-        cursor.execute(sql % cls.sql_samples_table.identifier)
+            log.info("Finished vacuum")
+        finally:
+            conn.close()



More information about the rhmessaging-commits mailing list