Let's say we want to run a task X seconds in the future.
The way to do that is defined in the reactor interface twisted.internet.interfaces.IReactorTime
:
from twisted.internet import reactor def f(s): print "this will run 3.5 seconds after it was scheduled: %s" % s reactor.callLater(3.5, f, "hello, world")
If we want a task to run every X seconds repeatedly, we can
use twisted.internet.task.LoopingCall
:
from twisted.internet import task def runEverySecond(): print "a second has passed" l = task.LoopingCall(runEverySecond) l.start(1.0) # call every second # l.stop() will stop the looping calls
If we want to cancel a task that we've scheduled:
from twisted.internet import reactor def f(): print "I'll never run." callID = reactor.callLater(5, f) callID.cancel()