
Am 27.01.2011 23:12, schrieb Brian Curtin:
import threading
class RepeatTimer(threading.Thread): def __init__(self, interval, callable, *args, **kwargs): threading.Thread.__init__(self) self.interval = interval self.callable = callable self.args = args self.kwargs = kwargs self.event = threading.Event() self.event.set()
def run(self): while self.event.is_set(): t = threading.Timer(self.interval, self.callable, self.args, self.kwargs) t.start() t.join()
def cancel(self): self.event.clear()
CherryPy has two simpler implementations for a PerpetualTimer and a BackgroundTask: http://cherrypy.org/browser/trunk/cherrypy/process/plugins.py#L424 . The BackgroundTask is less CPU consuming under Python 2.x. I guess the extended threading funtions in 3.2 make the implementation obsolete. Christian