低层 API 索引

本页列出了所有低层 asyncio API。

获取事件循环

asyncio.get_running_loop()

获取正在运行的事件循环的首选函数。

asyncio.get_event_loop()

获取事件循环实例(通过当前策略获取正在运行或当前的)。

asyncio.set_event_loop()

通过当前策略将事件循环设置为当前循环。

asyncio.new_event_loop()

创建一个新的事件循环。

示例:

事件循环方法

另请参阅有关事件循环方法的主文档部分。

生命周期

loop.run_until_complete()

运行 Future/Task/可等待对象直到完成。

loop.run_forever()

永远运行事件循环。

loop.stop()

停止事件循环。

loop.close()

关闭事件循环。

loop.is_running()

如果事件循环正在运行,则返回 True

loop.is_closed()

如果事件循环已关闭,则返回 True

await loop.shutdown_asyncgens()

关闭异步生成器。

调试

loop.set_debug()

启用或禁用调试模式。

loop.get_debug()

获取当前调试模式。

调度回调

loop.call_soon()

很快调用回调。

loop.call_soon_threadsafe()

loop.call_soon() 的线程安全变体。

loop.call_later()

在给定时间调用回调。

loop.call_at()

在给定时间调用回调。

线程/解释器/进程池

await loop.run_in_executor()

concurrent.futures 执行器中运行 CPU 密集型或其他阻塞函数。

loop.set_default_executor()

loop.run_in_executor() 设置默认执行器。

任务和 Future

loop.create_future()

创建一个 Future 对象。

loop.create_task()

将协程调度为 Task

loop.set_task_factory()

设置一个工厂,供 loop.create_task() 用于创建 Tasks

loop.get_task_factory()

获取 loop.create_task() 用于创建 Tasks 的工厂。

DNS

await loop.getaddrinfo()

socket.getaddrinfo() 的异步版本。

await loop.getnameinfo()

socket.getnameinfo() 的异步版本。

网络和 IPC

await loop.create_connection()

打开 TCP 连接。

await loop.create_server()

创建 TCP 服务器。

await loop.create_unix_connection()

打开 Unix 套接字连接。

await loop.create_unix_server()

创建 Unix 套接字服务器。

await loop.connect_accepted_socket()

socket 包装成 (transport, protocol) 对。

await loop.create_datagram_endpoint()

打开数据报 (UDP) 连接。

await loop.sendfile()

通过传输发送文件。

await loop.start_tls()

将现有连接升级为 TLS。

await loop.connect_read_pipe()

将管道的读取端包装成 (transport, protocol) 对。

await loop.connect_write_pipe()

将管道的写入端包装成 (transport, protocol) 对。

套接字

await loop.sock_recv()

socket 接收数据。

await loop.sock_recv_into()

socket 接收数据到缓冲区。

await loop.sock_recvfrom()

socket 接收数据报。

await loop.sock_recvfrom_into()

socket 接收数据报到缓冲区。

await loop.sock_sendall()

将数据发送到 socket

await loop.sock_sendto()

通过 socket 将数据报发送到给定地址。

await loop.sock_connect()

连接 socket

await loop.sock_accept()

接受 socket 连接。

await loop.sock_sendfile()

通过 socket 发送文件。

loop.add_reader()

开始监视文件描述符以进行读取可用性检查。

loop.remove_reader()

停止监视文件描述符以进行读取可用性检查。

loop.add_writer()

开始监视文件描述符以进行写入可用性检查。

loop.remove_writer()

停止监视文件描述符以进行写入可用性检查。

Unix 信号

loop.add_signal_handler()

信号 添加处理程序。

loop.remove_signal_handler()

信号 移除处理程序。

子进程

loop.subprocess_exec()

生成子进程。

loop.subprocess_shell()

从 shell 命令生成子进程。

错误处理

loop.call_exception_handler()

调用异常处理程序。

loop.set_exception_handler()

设置新的异常处理程序。

loop.get_exception_handler()

获取当前异常处理程序。

loop.default_exception_handler()

默认异常处理程序实现。

示例:

传输

所有传输都实现了以下方法

transport.close()

关闭传输。

transport.is_closing()

如果传输正在关闭或已关闭,则返回 True

transport.get_extra_info()

请求有关传输的信息。

transport.set_protocol()

设置新协议。

transport.get_protocol()

返回当前协议。

可以接收数据的传输(TCP 和 Unix 连接、管道等)。从 loop.create_connection()loop.create_unix_connection()loop.connect_read_pipe() 等方法返回

读取传输

transport.is_reading()

如果传输正在接收,则返回 True

transport.pause_reading()

暂停接收。

transport.resume_reading()

恢复接收。

可以发送数据的传输(TCP 和 Unix 连接、管道等)。从 loop.create_connection()loop.create_unix_connection()loop.connect_write_pipe() 等方法返回

写入传输

transport.write()

将数据写入传输。

transport.writelines()

将缓冲区写入传输。

transport.can_write_eof()

如果传输支持发送 EOF,则返回 True

transport.write_eof()

刷新缓冲数据后关闭并发送 EOF。

transport.abort()

立即关闭传输。

transport.get_write_buffer_size()

返回输出缓冲区的当前大小。

transport.get_write_buffer_limits()

返回写入流控制的高水位线和低水位线。

transport.set_write_buffer_limits()

为写入流控制设置新的高水位线和低水位线。

loop.create_datagram_endpoint() 返回的传输

数据报传输

transport.sendto()

将数据发送到远程对等方。

transport.abort()

立即关闭传输。

子进程的低层传输抽象。由 loop.subprocess_exec()loop.subprocess_shell() 返回

子进程传输

transport.get_pid()

返回子进程的进程 ID。

transport.get_pipe_transport()

返回所请求通信管道(stdinstdoutstderr)的传输。

transport.get_returncode()

返回子进程的返回代码。

transport.kill()

终止子进程。

transport.send_signal()

向子进程发送信号。

transport.terminate()

停止子进程。

transport.close()

终止子进程并关闭所有管道。

协议

协议类可以实现以下回调方法

callback connection_made()

建立连接时调用。

callback connection_lost()

连接丢失或关闭时调用。

callback pause_writing()

当传输的缓冲区超过高水位线时调用。

callback resume_writing()

当传输的缓冲区低于低水位线时调用。

流式协议(TCP、Unix 套接字、管道)

callback data_received()

接收到一些数据时调用。

callback eof_received()

接收到 EOF 时调用。

缓冲流式协议

callback get_buffer()

调用以分配新的接收缓冲区。

callback buffer_updated()

当缓冲区已更新接收到的数据时调用。

callback eof_received()

接收到 EOF 时调用。

数据报协议

callback datagram_received()

接收到数据报时调用。

callback error_received()

当之前的发送或接收操作引发 OSError 时调用。

子进程协议

callback pipe_data_received()

当子进程将其数据写入其 stdoutstderr 管道时调用。

callback pipe_connection_lost()

当与子进程通信的管道之一关闭时调用。

callback process_exited()

当子进程退出时调用。它可以在 pipe_data_received()pipe_connection_lost() 方法之前调用。

事件循环策略

策略是一种低层机制,用于更改 asyncio.get_event_loop() 等函数的行为。另请参阅主 策略部分 以获取更多详细信息。

访问策略

asyncio.get_event_loop_policy()

返回当前进程范围的策略。

asyncio.set_event_loop_policy()

设置新的进程范围策略。

AbstractEventLoopPolicy

策略对象的基类。