Индекс низкоуровневого 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/awaitable до завершения. |
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() |
Вызвать колбэк в данное время. |
Пул Thread/Process
await loop.run_in_executor() |
Запуск связанной с ЦП или другой блокирующей функцией в
исполнителе concurrent.futures . |
loop.set_default_executor() |
Установить исполнителя по умолчанию для loop.run_in_executor() . |
Tasks и Futures
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_sendall() |
Отправить данные 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() |
Создает подпроцесс из команды оболочки. |
Обработка ошибки
loop.call_exception_handler() |
Вызов обработчика исключений. |
loop.set_exception_handler() |
Установка нового обработчика исключения. |
loop.get_exception_handler() |
Получить текущий обработчик исключения. |
loop.default_exception_handler() |
Реализация обработчик исключения по умолчанию. |
Примеры
- Использование asyncio.get_event_loop() и loop.run_forever().
- Использование loop.call_later().
- Использование
loop.create_connection()
при реализации эхо клиента. - Использование
loop.create_connection()
для подключения к сокету. - Использование add_reader() следить за FD для чтения событий.
- Использование loop.add_signal_handler().
- Использование loop.subprocess_exec().
Транспорты¶
Все транспорты реализуют следующие методы:
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() |
Возвращает True если транспорт поддерживает отправку EOF. |
transport.write_eof() |
Закрыть и отправьте EOF после очистки буферизованных данных. |
transport.abort() |
Незамедлительно закрыть транспорт. |
transport.get_write_buffer_size() |
Возвращает верхнюю и нижнюю ватерлинии для контроля потока записи. |
transport.set_write_buffer_limits() |
Установка новых верхних и нижних ватерлиний для управления потоком записи. |
Транспорт возвращается loop.create_datagram_endpoint()
:
Транспорт дейтаграмм
transport.sendto() |
Отправить данные на удаленный узел. |
transport.abort() |
Незамедлительное закройте транспорта. |
Низкоуровневая абстрация транспорта, через подпроцессы.
Возвращает loop.subprocess_exec()
и
loop.subprocess_shell()
:
Транспорты подпроцессов
transport.get_pid() |
Вернуть идентификатор процесса подпроцесса. |
transport.get_pipe_transport() |
Возврат транспорта для запрошенного пайпа связи (stdin, stdout или stderr). |
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() |
Вызывается, когда дочерний процесс записывает данные в свой stdout или stderr пайп. |
callback pipe_connection_lost() |
Вызывается, когда однин из пайпов соединяется с закрытым дочерним процессом. |
callback process_exited() |
Вызывается, когда завершен дочерний процесс. |
Политики событийного цикла¶
Политики - это низкоуровневый механизм изменения поведений
функций, подобно asyncio.get_event_loop()
. См. также
основной раздел политик для получения
дополнительных подробностей.
Доступ к политикам
asyncio.get_event_loop_policy() |
Возвращение текущей политики для всего процесса. |
asyncio.set_event_loop_policy() |
Установка новую политики для всего процесса. |
AbstractEventLoopPolicy |
Базовый класс для объектов политики. |