低级 API 索引

本页列出了所有低级异步 API。

获取事件循环

asyncio.get_running_loop()“首选”Function可获取运行中的事件循环。
asyncio.get_event_loop()获取事件循环实例(当前或pass策略)。
asyncio.set_event_loop()pass当前策略将事件循环设置为当前。
asyncio.new_event_loop()创建一个新的事件循环。

Examples

事件循环方法

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

Lifecycle

loop.run_until_complete()运行 Future/Task/awaitable,直到完成。
loop.run_forever()永远运行事件循环。
loop.stop()停止事件循环。
loop.close()关闭事件循环。
loop.is_running()如果事件循环正在运行,则返回True
loop.is_closed()如果事件循环已关闭,则返回True
await loop.shutdown_asyncgens()关闭异步生成器。

Debugging

loop.set_debug()启用或禁用调试模式。
loop.get_debug()获取当前的调试模式。

Scheduling Callbacks

loop.call_soon()即将调用回调。
loop.call_soon_threadsafe()loop.call_soon()的线程安全变体。
loop.call_later()在给定时间之后*调用回调。
loop.call_at()在给定时间*调用回调。

Thread/Process Pool

await loop.run_in_executor()concurrent.futures执行程序中运行受 CPU 限制或其他阻止Function。
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()pass传输发送文件。
await loop.start_tls()将现有连接升级到 TLS。
await loop.connect_read_pipe()将管道的读取端包装成(transport, protocol)对。
await loop.connect_write_pipe()将管道的写入端包装成(transport, protocol)对。

Sockets

await loop.sock_recv()socket接收数据。
await loop.sock_recv_into()socket接收数据到缓冲区。
await loop.sock_sendall()将数据发送到socket
await loop.sock_connect()连接socket
await loop.sock_accept()接受socket连接。
await loop.sock_sendfile()passsocket发送文件。
loop.add_reader()开始查看文件 Descriptors 的读取可用性。
loop.remove_reader()停止查看文件 Descriptors 的读取可用性。
loop.add_writer()开始观察文件 Descriptors 的写可用性。
loop.remove_writer()停止查看文件 Descriptors 的写可用性。

Unix Signals

loop.add_signal_handler()signal添加处理程序。
loop.remove_signal_handler()删除signal的处理程序。

Subprocesses

loop.subprocess_exec()产生一个 subprocess。
loop.subprocess_shell()从 shell 命令产生一个子进程。

Error Handling

loop.call_exception_handler()调用异常处理程序。
loop.set_exception_handler()设置一个新的异常处理程序。
loop.get_exception_handler()获取当前的异常处理程序。
loop.default_exception_handler()默认的异常处理程序实现。

Examples

Transports

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

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()等方法返回:

Read Transports

transport.is_reading()如果运输正在接收,则返回True
transport.pause_reading()Pause receiving.
transport.resume_reading()Resume receiving.

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

Write Transports

transport.write()将数据写入传输器。
transport.writelines()将缓冲区写入传输。
transport.can_write_eof()如果传输支持发送 EOF,则返回True
transport.write_eof()刷新缓冲的数据后,关闭并发送 EOF。
transport.abort()立即关闭运输装置。
transport.get_write_buffer_size()返回高低水位线以进行写流控制。
transport.set_write_buffer_limits()设置新的高水位线和低水位线以进行写流控制。

loop.create_datagram_endpoint()返回的运输:

Datagram Transports

transport.sendto()将数据发送到远程对等方。
transport.abort()立即关闭运输装置。

子流程上的底层传输抽象。由loop.subprocess_exec()loop.subprocess_shell()返回:

Subprocess Transports

transport.get_pid()返回子进程的进程 ID。
transport.get_pipe_transport()返回请求的通信管道的传输(* stdin stdout stderr *)。
transport.get_returncode()返回子流程的返回码。
transport.kill()杀死子进程。
transport.send_signal()向子流程发送 signal。
transport.terminate()停止子进程。
transport.close()终止子进程并关闭所有管道。

Protocols

协议类可以实现以下 callback 方法

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 时调用。

Datagram Protocols

callback datagram_received()收到数据报时调用。
callback error_received()在先前的发送或接收操作引发OSError时调用。

Subprocess Protocols

callback pipe_data_received()当子进程将数据写入其* stdout stderr *管道时调用。
callback pipe_connection_lost()当与子进程进行通信的管道之一关闭时调用。
callback process_exited()子进程退出时调用。

事件循环 Policy

策略是一种底层机制,用于更改asyncio.get_event_loop()之类的Function的行为。另请参见主要policies section

Accessing Policies

asyncio.get_event_loop_policy()返回当前的整个流程范围的 Policy。
asyncio.set_event_loop_policy()设置新的流程范围的策略。
AbstractEventLoopPolicy策略对象的 Base Class。