[PEAK] peak events tasks...

Phillip J. Eby pje at telecommunity.com
Wed Jul 7 13:04:30 EDT 2004


At 11:36 AM 7/7/04 -0500, darryl wrote:

>Hey PEAK-sters
>
>Does anyone have example code or publicly visible projects which use
>peak events etc. especially with respect to twisted support?
>
>The whole pseudothread (Tasks) thing sounds cool. I just dont' know how to 
>use it :P

The 'peak.tools.supervisor' app uses them a lot.  It's primarily a FastCGI 
application runner, for Unix-ish platforms.  It doesn't do anything with 
Twisted, though.

It spawns at least a couple of Tasks for every subprocess it has running, 
plus several watchdog tasks.  For example, one task keeps track of how many 
subprocesses are running, and if it's less than desired it starts one, then 
waits a preset interval before checking to see if more are needed.  When it 
reaches the number of "desired" processes, it resets the "desired" number 
to the "minimum" number.

Another task monitors how many subprocesses are busy, and if all of them 
are busy, and a HTTP connection is pending, it raises the number of 
"desired" processes, so that the other task can "notice" and start new 
subprocesses.

A task for each subprocess monitors a pipe from the child to track whether 
the child process is "busy" or not, and update the count of busy processes 
accordingly.

So, between these various tasks, the system dynamically enforces the rules 
it has been given regarding the maximum frequency of starting subprocesses, 
the minimum number to have running, and so on.




More information about the PEAK mailing list