[Twisted-Python] Questions about twisted.python.delay.Delayed

Glyph Lefkowitz glyph at twistedmatrix.com
Sun Sep 30 18:34:59 EDT 2001

On Sunday, September 30, 2001, at 01:20  PM, Matt Campbell wrote:

> I'm a relatively new user of Twisted (started using it in late August
> to write a custom server), and I have a few questions about the
> twisted.python.delay.Delayed class.

Welcome to the club!

> 1.  Why does Delayed measure time in units of five-second ticks by
> default?

To highlight the fact that tick-time is not the same thing as 
real-time.  It's adjustable.

> 2.  Why is Delayed.run() called every five seconds or so even when there
> are no delayed tasks scheduled?  Wouldn't the process's CPU usage be
> slightly lower if Delayed.timeout() returned None when the queue is 
> empty?

A Delayed is a simulation, which is advancing through time at some 
multipler of real time.  I originally intended that other kinds of 
scheduled callbacks would work differently, but it so happens that 
Delayed works really fulfill that whole requirement.

Your optimization sounds like a good idea, though.

> 3.  What is the recommended way to specify, for example, that a function
> should be called approximately 30 seconds from now?  Should I pass 6 as
> the number of ticks to Delayed.later(), or is there a better way to do 
> it?

You should create your own Delayed for processing whatever type of 
events these are, and give it an appropriate ticktime.  If you have an 
event that happens every 30 seconds, make the ticktime 30, and use 
Delayed.loop with an argument of 1 to kick off your callback.

______      you are in a maze of twisted little applications, all
|   |_\     remarkably consistent.
|     |          -- glyph lefkowitz, glyph @ twisted matrix . com
|_____|             http://www.twistedmatrix.com/

More information about the Twisted-Python mailing list