Python asyncio文档翻译--运行一个消息循环EventLoop

来源:互联网 发布:命运2 枪匠遥测数据 编辑:程序博客网 时间:2024/06/01 10:15
AbstractEventLoop.run_forever()
轮询I/O选择器直到遇到一个“0”超时,调用所有已排程的回调函数以响应I/O事件(以及那些已经排程的),然后退出。如果stop()在run_forever时,就会运行当下的一批回调函数然后退出。注意回调函数被回调函数排程不会运行,他们会在下一次run_forever时被调用。

在3.5.1版本发生改变

AbstractEventLoop.run_until_complete(future)
运行直到Future结束
如果参数是协程,它被ensure_future()包装。
返回Future的结果,或者抛出异常。

AbstractEventLoop.stop()
停止运行事件环
这导致run_forever 在下一个合适的机会退出(查看更多细节)

AbstractEventLoop.close()
关闭事件环。环必须停止运行。挂起的回调函数会被留下。
这个动作将清空队列同时切断执行者,但不会等执行者做完。
这是幂等的并且不可逆的。这个方法后任何方法都失效。

coroutineAbstractEventLoop.shutdown_asyncgens()
调度所有当前打开的异步构造器对象关闭aclose()呼叫。在呼叫这个方法之后,这个事件环会发出一个警告无论新的异步构造器是否迭代。应该习惯去可靠地完成所有被调度的异步构造器。例子:

try:    loop.run_forever()finally:    loop.run_until_complete(loop.shutdown_asyncgens())    loop.close()

New in version 3.6.




原创粉丝点击