本文整理汇总了Python中event.Event.add_timer方法的典型用法代码示例。如果您正苦于以下问题:Python Event.add_timer方法的具体用法?Python Event.add_timer怎么用?Python Event.add_timer使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类event.Event
的用法示例。
在下文中一共展示了Event.add_timer方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _do_close
# 需要导入模块: from event import Event [as 别名]
# 或者: from event.Event import add_timer [as 别名]
def _do_close(self):
_logger.debug('%s, _do_close', str(self))
if self._error:
self._stop_sending()
self.stop_receiving()
if self._close_ev is None:
self._close_ev = Event.add_timer(0)
self._close_ev.set_handler(lambda ev: self._on_close())
示例2: _on_send
# 需要导入模块: from event import Event [as 别名]
# 或者: from event.Event import add_timer [as 别名]
def _on_send(self):
_logger.debug('%s, _on_send', str(self))
if self._fin_sent:
self._stop_sending()
if self._fin_received:
self._do_close()
else:
self.start_receiving()
assert(self._fin_ev is None)
_logger.debug('%s, add fin wait timer', str(self))
self._fin_ev = Event.add_timer(FIN_WAIT_TIMEOUT)
self._fin_ev.set_handler(lambda ev: self._wait_fin_timeout())
return
sent_bytes = 0
ready_to_send = True
while len(self._to_send) > 0:
data, addr = self._to_send.popleft()
if data is None:
left = len(self._to_send)
if left != 0:
_logger.warning('%s, discard %d packages', str(self), left)
self._to_send.clear()
self._to_send_bytes = 0
self._shutdown()
return
try:
sent = self._send(data, addr)
sent_bytes += sent
self._to_send_bytes -= sent
if sent < len(data):
self._to_send.appendleft((data[sent:], addr))
except self._errorType as msg:
self._to_send.appendleft((data, addr))
if msg.errno != errno.EAGAIN and msg.errno != errno.EINPROGRESS:
_logger.warning('%s, send(%d): %s',
str(self), msg.errno, msg.strerror)
self._error = True
self._do_close()
return
else:
ready_to_send = False
break
_logger.debug("%s, sent %d bytes", str(self), sent_bytes)
if len(self._to_send) == 0:
self._stop_sending()
self._to_send_or_not(ready_to_send)
示例3: connect
# 需要导入模块: from event import Event [as 别名]
# 或者: from event.Event import add_timer [as 别名]
def connect(self, addr, port):
_logger.debug('connect')
if self.is_closed():
return
self._wev.set_handler(lambda ev: self._check_connected())
try:
_logger.debug('connecting to %s:%d', addr, port)
self._fd.connect((addr, port))
except socket.error as msg:
if msg.errno != errno.EAGAIN and msg.errno != errno.EINPROGRESS:
_logger.error('fd: %d, connect: %s',
self._fd.fileno(), os.strerror(msg.errno))
self._error = True
self._do_close()
else:
Event.addEvent(self._wev)
else:
timer = Event.add_timer(0)
timer.set_handler(lambda ev: self._wev.get_handler()(self._wev))
示例4: _enable_heartbeat
# 需要导入模块: from event import Event [as 别名]
# 或者: from event.Event import add_timer [as 别名]
def _enable_heartbeat(self):
self._hb_event = Event.add_timer(HEARTBEAT_INTERVAL)
self._hb_event.set_handler(lambda ev: self._send_heartbeat())