[Python-ideas] Adding threading.RepeatTimer class

Alex Grönholm alex.gronholm at nextday.fi
Thu Jan 27 23:37:44 CET 2011


27.01.2011 20:03, Daniel da Silva kirjoitti:
> We have a threading.Timer class which executes after a given delay and 
> then terminates. I was thinking about a pre-made class that would 
> execute, wait an interval, and then repeat. It would cut down on the 
> logic people need to implement themselves, and make simple scripts faster.
For that purpose you can use APScheduler's interval scheduling:
http://packages.python.org/APScheduler/

Granted, it's not a part of the standard library but it would fulfill 
the purpose stated above.
>
> Here are some use cases:
>
> # Send a ping message to all connected clients every 120 seconds
> from server import ping_all_clients
> pinger = threading.RepeatTimer(120, ping_all_clients)
> pinger.start()
>
> # Check for updates every 3 hours
> from mymodule import check_for_updates
> update_checker = threading.RepeatTimer(60*60*3, check_for_updates)
> update_checker.start()
>
>
> I was thinking of the class having an initializer signature as follows:
>
> class threading.RepeatTimer(interval, function, args=[], kwargs={}, 
> limit=None)
>      Create a timer that will run function with args and kwargs and 
> repeat every interval secods. If limit is
>      an integer, limits repetitions to that many calls.
>
>      cancel()
>          Stop the repeat timer. If in the middle of a call, the call 
> is allowed to finish.
>
> Daniel
>
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> http://mail.python.org/mailman/listinfo/python-ideas

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20110128/35222740/attachment.html>


More information about the Python-ideas mailing list