Trees | Indices | Help |
|
---|
|
1 ############################################################################## 2 # 3 # Copyright (C) Zenoss, Inc. 2007, all rights reserved. 4 # 5 # This content is made available according to terms specified in 6 # License.zenoss under the directory where your Zenoss product is installed. 7 # 8 ############################################################################## 9 10 11 import logging 12 from twisted.internet import reactor, defer 13 14 15 log = logging.getLogger('zen.Procrastinator') 16 1719 "A class to delay executing a change to a device" 20 21 _DO_LATER_DELAY = 5 22 _DO_NOW_DELAY = 0.05 235825 self.cback = cback 26 self.devices = set() 27 self.timer = None 28 self._stopping = False 29 self._stopping_deferred = defer.Deferred()3032 self.devices = set()3335 self._stopping = True 36 if not self.devices: 37 return defer.succeed(True) 38 log.debug("Returning stopping deferred") 39 d, self._stopping_deferred = self._stopping_deferred, None 40 return d4143 if not self._stopping: 44 if self.timer and not self.timer.called: 45 self.timer.cancel() 46 self.devices.add(device) 47 self.timer = reactor.callLater(Procrastinate._DO_LATER_DELAY, self._doNow)4850 if self.devices: 51 device = self.devices.pop() 52 self.cback(device) 53 if self.devices: 54 reactor.callLater(Procrastinate._DO_NOW_DELAY, self._doNow) 55 elif self._stopping: 56 log.debug("Callback to _stopping_deferred") 57 self._stopping_deferred.callback(None)
Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1.1812 on Mon Jul 30 17:11:24 2012 | http://epydoc.sourceforge.net |