On this page
低级 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
使用
loop.create_connection()
实现an echo-client。使用
loop.create_connection()
到连接 socket。
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。 |