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@python.org
http://mail.python.org/mailman/listinfo/python-ideas