Twisted: deferred that fires repeatedly?
I've set this up for now. For my limited use case it does what I want.
class RepeatedDeferred: def __init__(self): self.callbacks = [] self.df = defer.Deferred() def addCallback(self, callback): self.callbacks.append(callback) self.df.addCallback(callback) def callback(self, res): self.df.callback(res) self.df = defer.Deferred() for c in self.callbacks: self.df.addCallback(c)
Someone let me know if this is terrible.
What you might be looking for is defer.inlineCallbacks
which allows you to use a generator to create a sequential chain of Deferreds. Essentially you could just create a generator that never ends (or ends conditionally) and keep generating Deferreds from that.
There is a great writeup on using inlineCallbacks
at krondo.com.