Converted to Twisted from asyncore. Not positive if this is just my local machine, but it seems like this backend is a bit faster.

This commit is contained in:
Greg Taylor 2007-05-21 20:52:05 +00:00
parent 82f46a2b69
commit 97cf1213e6
8 changed files with 113 additions and 145 deletions

View file

@ -1,5 +1,5 @@
import time
import events
from twisted.internet import protocol, reactor, defer
"""
A really simple scheduler. We can probably get a lot fancier with this
in the future, but it'll do for now.
@ -11,24 +11,12 @@ ADDING AN EVENT:
"""
# The timer method to be triggered by the main server loop.
def heartbeat():
def start_events():
"""
Handle one tic/heartbeat.
"""
tictime = time.time()
for event in events.schedule:
try:
events.lastrun[event]
except:
events.lastrun[event] = time.time()
diff = tictime - events.lastrun[event]
event_func = getattr(events, event)
if diff >= events.schedule[event]:
event_func = getattr(events, event)
if callable(event_func):
event_func()
# We'll get a new reading for time for accuracy.
events.lastrun[event] = time.time()
if callable(event_func):
reactor.callLater(events.schedule[event][0], event_func)