def handle_events(self):
'''
Gets and Dispatches events in an endless loop using gevent spawn.
'''
self.trace("handle_events started")
while True:
# Gets event and dispatches to handler.
try:
self.get_event()
gevent.sleep(0)
if not self.connected:
self.trace("Not connected !")
break
except LimitExceededError:
break
except ConnectError:
break
except socket.error, se:
break
except GreenletExit, e:
break
except Exception, ex:
self.trace("handle_events error => %s" % str(ex))
self.trace("handle_events stopped now")
try:
self.trace("handle_events socket.close")
self.transport.sockfd.close()
self.trace("handle_events socket.close success")
except Exception, e:
self.trace("handle_eventssocket.close ERROR: %s" % e)
self.connected = False
# prevent any pending request to be stuck
self._flush_commands()
return
评论列表
文章目录