tjreedy at udel.edu
Thu Feb 21 06:07:51 CET 2013
On 2/20/2013 11:04 PM, Rita wrote:
> Here is what I am trying to do. (Currently, I am doing this in cron but
> i need much more granularity). I am trying to run program every 20 secs
> and loop forever. I have several of these types of processes, some
> should run every 5 mins, 10 secs, 20 secs, 1 min and so forth. I was
> wondering what is the best way to do this?
One way is to use a heap as a priority queue (see heapq module).
Make a table of (delay, process) pairs.
Load time-to-execute, process pairs in the queue.
Run the main loop:
get top of queue
sleep time-to-execute - now() seconds
put new time-to-execute, process pair in the queue
This simple version assumes that processes are self-contained and do not
need to communicate with driver process and its loop.
> Also, would Greenlet do something I am asking for?
Terry Jan Reedy
More information about the Python-list