2006-12-05 20:57:45 +00:00
|
|
|
import time
|
2006-12-22 06:17:17 +00:00
|
|
|
import events
|
2006-12-22 02:43:29 +00:00
|
|
|
"""
|
|
|
|
|
A really simple scheduler. We can probably get a lot fancier with this
|
|
|
|
|
in the future, but it'll do for now.
|
2006-12-05 20:57:45 +00:00
|
|
|
|
2006-12-22 02:43:29 +00:00
|
|
|
ADDING AN EVENT:
|
2007-04-25 20:11:29 +00:00
|
|
|
* Add an entry to the 'schedule' dictionary in the 'events' file.
|
2006-12-22 02:43:29 +00:00
|
|
|
* Add the proper event_ function here.
|
|
|
|
|
* Profit.
|
|
|
|
|
"""
|
2006-12-05 20:57:45 +00:00
|
|
|
|
2006-12-22 02:43:29 +00:00
|
|
|
# The timer method to be triggered by the main server loop.
|
|
|
|
|
def heartbeat():
|
2006-12-05 20:57:45 +00:00
|
|
|
"""
|
2006-12-22 02:43:29 +00:00
|
|
|
Handle one tic/heartbeat.
|
|
|
|
|
"""
|
|
|
|
|
tictime = time.time()
|
2006-12-22 06:17:17 +00:00
|
|
|
for event in events.schedule:
|
2006-12-22 02:43:29 +00:00
|
|
|
try:
|
2006-12-22 06:17:17 +00:00
|
|
|
events.lastrun[event]
|
2006-12-22 02:43:29 +00:00
|
|
|
except:
|
2006-12-22 06:17:17 +00:00
|
|
|
events.lastrun[event] = time.time()
|
2006-12-05 20:57:45 +00:00
|
|
|
|
2006-12-22 06:17:17 +00:00
|
|
|
diff = tictime - events.lastrun[event]
|
2006-12-05 20:57:45 +00:00
|
|
|
|
2006-12-22 06:17:17 +00:00
|
|
|
if diff >= events.schedule[event]:
|
|
|
|
|
event_func = getattr(events, event)
|
2006-12-22 02:43:29 +00:00
|
|
|
|
|
|
|
|
if callable(event_func):
|
|
|
|
|
event_func()
|
|
|
|
|
|
|
|
|
|
# We'll get a new reading for time for accuracy.
|
2006-12-22 06:17:17 +00:00
|
|
|
events.lastrun[event] = time.time()
|