Twisted: Send all available ircmsgs and reduce delay between checks

All ircmsgs that takeMsg will return should be processed each time
checkIrcForMsgs is called since there may be multiple available in the
fastqueue.

Reduced the time between calls of checkIrcForMsgs so the delay between
normally queued ircmsgs stays close to the configured throttleTime.

Closes: Sf#3018148
This commit is contained in:
James Vega 2010-06-18 20:33:43 -04:00
parent a278d17f2b
commit adc5d62bbf
1 changed files with 4 additions and 3 deletions

View File

@ -66,7 +66,7 @@ class SupyIrcProtocol(LineReceiver):
delimiter = '\n'
MAX_LENGTH = 1024
def __init__(self):
self.mostRecentCall = reactor.callLater(1, self.checkIrcForMsgs)
self.mostRecentCall = reactor.callLater(0.1, self.checkIrcForMsgs)
def lineReceived(self, line):
msg = drivers.parseMsg(line)
@ -76,9 +76,10 @@ class SupyIrcProtocol(LineReceiver):
def checkIrcForMsgs(self):
if self.connected:
msg = self.irc.takeMsg()
if msg:
while msg:
self.transport.write(str(msg))
self.mostRecentCall = reactor.callLater(1, self.checkIrcForMsgs)
msg = self.irc.takeMsg()
self.mostRecentCall = reactor.callLater(0.1, self.checkIrcForMsgs)
def connectionLost(self, r):
self.mostRecentCall.cancel()