Periodische Tasks
Verfasst: Freitag 22. Oktober 2010, 08:53
Hallo zusammen,
ich brauche eine kleine Klasse, der ich eine Funktion übergeben kann, die dann alle n Sekunden im Hintergrund ausgeführt wird.
Implementiert habe ich bisher folgendes:
Das Ganze funktioniert auch soweit nur stört mich die mehrfache Definition des Timer Objekts ... threading.Timer(self.period, self.restartTimer). Lege ich mit dieser Implementierung nicht immer wieder neue Timer neben den bereits existierenden an?
Grüße und ein schönes Wochenende
Poseidonius
PS: Als Neuling bin ich freue ich mich über alle kritischen Anmerkungen ("so macht man das aber schon gar nicht, weil ...")
ich brauche eine kleine Klasse, der ich eine Funktion übergeben kann, die dann alle n Sekunden im Hintergrund ausgeführt wird.
Implementiert habe ich bisher folgendes:
Code: Alles auswählen
import time, threading
class PeriodicTask():
def __init__(self, period, callbackfct):
self.period=period
self.callbackfct=callbackfct
def startTimer(self):
self.timer=threading.Timer(self.period, self.restartTimer)
self.timer.start()
def restartTimer(self):
self.callbackfct(1)
self.startTimer()
if __name__ == "__main__":
def doSomeThing(value):
print "Callback Function running"
print value
A=PeriodicTask(1, doSomeThing)
A.startTimer()Grüße und ein schönes Wochenende
Poseidonius
PS: Als Neuling bin ich freue ich mich über alle kritischen Anmerkungen ("so macht man das aber schon gar nicht, weil ...")