[Twisted-Python] Run a function repeatedly at different intervals
    Jean-Paul Calderone 
    exarkun at divmod.com
       
    Wed May  3 09:03:50 MDT 2006
    
    
  
On Wed, 3 May 2006 10:49:19 -0400, Khoa Nguyen <khoa.coffee at gmail.com> wrote:
>Hi,
>
>I am new to Twisted Python. I would like to fire a function several
>times at different intervals. For example, at 1 second fire f(), at 2
>second fire f() again, at 4 second fire f(), and so on...
>
>How do I do that? I looked at the doc and it has
>task.LoopingCall(second) but the time interval is fixed...
>
LoopingCall is implemented in terms of IReactorTime.callLater.  If you want to schedule a function to run in 1, 2, and 4 seconds:
    reactor.callLater(1, f)
    reactor.callLater(2, f)
    reactor.callLater(4, f)
You could also have f re-schedule itself when it runs, or write a helper that schedules it, as LoopingCall is a helper for running a function on a fixed interval.
It may also be possible to extend LoopingCall to allow changing its interval as it runs.  You could also use LoopingCall as it is and stop() and then start() it with a new interval.
Jean-Paul
    
    
More information about the Twisted-Python
mailing list