How to launch a function at regular time intervals ?

Frank Millman frank at
Thu Aug 13 06:20:05 CEST 2009

On Aug 12, 11:09 pm, David <davigier at> wrote:
> Hi all, I'm trying to launch a function at regular time intervals but
> cannot find the way to do it.

I assume you want your main program to continue running, while launching the 
function to run in the background.

If you need this as a general capability, Christian's approach is probably 
the way to go.

In my case I had one specific requirement, and found it easier to write a 
dedicated solution, as follows -

import threading

class MyFunction(threading.Thread):
    """Perform function every 30 seconds in separate thread"""

    def __init__(self):
        self.event = threading.Event()

    def run(self):
        while not self.event.is_set():
            # either call your function here,
            # or put the body of the function here
            self.event.wait(30)  # wait for 30 seconds

    def stop(self):

At the start of the main program, I have the following -
    func = MyFunction()

When closing the main program, I have -

It is trivial to modify this to pass the interval, plus any other parameters 
required, as arguments.


Frank Millman

More information about the Python-list mailing list