hub 是 Eventlet’s event loop的主要部分,用于分配I/O 事件 和调度绿色线程。
Eventlet 有多种hub实现,现支持一下几种:
epoll
poll
selects
pyevent
pyevent是基于libevent,因此这四种pyevent最快。默认是禁止的。
eventlet.hubs.use_hub(hub=None)
配置使用哪种hub。确保要在I/O操作前调用,在程序调用能够清除先前的hub,而且已经发生IO操作将被忽略。
from eventlet import hubs
hubs.use_hub("pyevent")
eventlet.hubs.use_hub() 仅仅用于当前进程,当使用多进程时须要在自己的在进程開始调用 eventlet.hubs.use_hub()确保不与父进程或者兄弟进程共享hub
eventlet.hubs.get_hub()获取当前hub
eventlet.hubs.get_default_hub()
eventlet.hubs.trampoline(fd, read=None, write=None, timeout=None, timeout_exc=<class
'eventlet.timeout.Timeout'>)
挂起当前协程直到socket对象或者文件描写叙述符被读写 ,能够设置超时。