低级 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()

signal 添加处理程序。

loop.remove_signal_handler()

删除 signal 的处理程序。

子进程

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

策略对象的基类。