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:
while True:
  get top of queue
  sleep time-to-execute - now() seconds
  start subprocess
  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?

Don't know.

--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to