Hi!

Following patch will give you better control using parallel option. In 
original code, when you specified "2" parallel clients, 4 actual jobs where 
running. This is because wrong order of checking how much jobs are running.
For that reason, fillCollectionSlots is moved AFTER self.clients.remove.

I think the patch is simple enough so it should be easy to understand it. :-)

H.

--- ./Products/DataCollector/zenmodeler.py.orig	2007-02-08 11:42:41.000000000 +0100
+++ ./Products/DataCollector/zenmodeler.py	2007-02-08 11:41:54.000000000 +0100
@@ -279,12 +279,12 @@
                             collectorClient.hostname)
             device = collectorClient.device
             self.applyData.processClient(device, collectorClient)
-            self.fillCollectionSlots()
         finally:
             try: self.clients.remove(collectorClient)
             except ValueError:
                 self.log.warn("client %s not found in active clients",
                                 collectorClient.hostname)
+        self.fillCollectionSlots()
 
 
     def checkStop(self):
@@ -310,7 +310,7 @@
         """If there are any free collection slots fill them up
         """
         count = len(self.clients)
-        while (count <= self.options.parallel and
+        while (count < self.options.parallel and
                self.devicegen and not self.slowDown):
             try:
                 device = self.devicegen.next()
_______________________________________________
zenoss-users mailing list
[email protected]
http://lists.zenoss.org/mailman/listinfo/zenoss-users

Reply via email to