On 21/02/2013 06:04, Rita wrote:
Hello,


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?


Also, would Greenlet do something I am asking for?


Don't know if this helps, but ...

I have a program with a main loop that listens for input, and simultaneously I need to run something in the background on a regular basis. I use the threading module, like this.

import threading

class Check(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        self.event = threading.Event()

    def run(self):
        event = self.event  # make local
        while not event.is_set():
            [run your activity here]
            event.wait(10)  # check every 10 seconds

    def stop(self):
        self.event.set()

Before the main loop starts, I have -

    check = Check()
    check.start()

When the main loop ends, I have -

    check.stop()
    check.join()

For multiple activities, you could have one class per activity, or have a generic class, and pass in the executable and the timeout as parameters.

HTH

Frank Millman


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

Reply via email to