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 in 3.5 seconds: %s" % s
reactor.callLater(3.5, f, "hello, world")
If we want a task to run every X seconds repeatedly, we can just re-add it every time it's run:
from twisted.internet import reactor
def runEverySecond():
print "a second has passed"
reactor.callLater(1, runEverySecond)
reactor.callLater(1, runEverySecond)
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()