diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2009-07-23 02:41:12 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2009-07-23 02:41:12 +0000 |
commit | 0f3296f6f876bf2aeccaa7de4683d968dc33bb7e (patch) | |
tree | 65ac5577a77f42b8e60cced41ed197da8f5fdcaf /src | |
parent | df71d563a9b82e08807e1e3603ae15fbd4ae1bae (diff) | |
download | bcfg2-0f3296f6f876bf2aeccaa7de4683d968dc33bb7e.tar.gz bcfg2-0f3296f6f876bf2aeccaa7de4683d968dc33bb7e.tar.bz2 bcfg2-0f3296f6f876bf2aeccaa7de4683d968dc33bb7e.zip |
Snapshots: make importer async, and serialize db loads
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5380 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/Server/Plugins/Snapshots.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/lib/Server/Plugins/Snapshots.py b/src/lib/Server/Plugins/Snapshots.py index c8d4e31c3..315dc34c0 100644 --- a/src/lib/Server/Plugins/Snapshots.py +++ b/src/lib/Server/Plugins/Snapshots.py @@ -6,7 +6,9 @@ import difflib import Bcfg2.Server.Plugin import Bcfg2.Server.Snapshots from Bcfg2.Server.Snapshots.model import Snapshot +import Queue import time +import threading ftypes = ['ConfigFile', 'SymLink', 'Directory'] datafields = {'Package': ['version'], @@ -52,9 +54,17 @@ class Snapshots(Bcfg2.Server.Plugin.Statistics, Bcfg2.Server.Plugin.Plugin.__init__(self, core, datastore) Bcfg2.Server.Plugin.Statistics.__init__(self) self.session = Bcfg2.Server.Snapshots.setup_session() + self.work_queue = Queue.Queue() + self.loader = threading.Thread(target=self.load_snapshot) + self.loader.start() + + def load_snapshot(self): + while True: + (metadata, data) = self.work_queue.get(block=True) + self.statistics_from_old_stats(metadata, data) def process_statistics(self, metadata, data): - return self.statistics_from_old_stats(metadata, data) + return self.work_queue.put((metadata, data)) def statistics_from_old_stats(self, metadata, xdata): # entries are name -> (modified, correct, start, desired, end) |