[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