Особенности asyncio.wait_for() в асинхронном Python. Как работает таймаут для корутины

preview_player
Показать описание


0:00 Просмотр исходного кода
6:41 Изучаем вопрос с исходниками StreamReader
13:49 Разобрались!
15:36 Демонстрация в упрощённом сценарии

/****************** about ******************/

Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:

Рекомендации по теме
Комментарии
Автор

Было бы круто ещё узнать про асинхронность, как вариант можно рассказать про подобные вещи "Semaphore"

MadoxXx
Автор

Обязательно делай материал про асинхронность, если появится желание и возможность ; ) Очень жду, буду смотреть с большим удовольствием.

warpmaster
Автор

Алексей, да, про асинхронность было бы очень интересно узнать подробнее! Спасибо за видео!

agoskin
Автор

Про асинхронность, конечно же, нужен выпуск. Хорошо бы упомянуть при этом aiohttp как альтернативу традиционным серверам.

random-history
Автор

разбери пожалуйста правильную работу pyqt с asyncio, когда нужно выполнять асинхронный задачи в отдельном потоке или как pyqt выполнить в полностью асинхронном подходе (qasync или еще что-то), буду очень благодарен!

Drevov
Автор

поддерживаю выпуск про асинхронность в питоне

stan
Автор

Я бы хотел посмотреть ваш ролик про асинхронность, возможно и не один. У вас очень хорошо получается рассказывать сложные вещи простым языком.

xBAMIIuPx
Автор

Балуете Вы нас. Второй годный ролик за неделю! Спасибо!

vitalyvlasenko
Автор

ЗЫ. Чтобы проблемный кейс из видео отработал можно (просто для понимания) добавить куда-то в начало метода StreamReader.read (в файле asyncio/streams.py) :

import asyncio
await asyncio.sleep(0.1)

это на 0.1 секунду замедлит выполнение reader.read(), но позволит wait_for прибить корутину по таймауту. Почему так сработает? Потому что в asyncio.sleep у нас эмулируется асинхронный ввод вывод и в момент ожидания этого ввода-вывода контекст передаётся в event loop и потому wait_for получает возможность отслеживать таймаут и прибивать корутину.

Конечно, править таким образом исходники Python не надо:) Повторюсь, это просто для понимания вопроса.

tdigital
Автор

Хотим, конечно, asyncio! Просим!
И про потоки/процессы тоже хотелось бы.

Мне как-то нужно было много картинок скачать с одного сайта, недоступного в РФ. Пришлось использовать много разных прокси (там ограничение на скачивание с одного IP-адреса). Пытался aiohttp прикрутить. Плюнул, сделал быстро и кроваво bash-скриптом с "&".
ООО "Костыли и велосипеды". Программируем, как умеем.

vitalyvlasenko
Автор

Алексей, как всегда толково и профессионально! Материал про асинхронность от тебя просто необходим!

quasar-lvpp
Автор

очень интересно про все что связано в асинхронностью в питоне)

MartinEden-psld
Автор

Спасибо за видео разбор. Все четко и доступно. Даешь больше про асинхронность! 👍

joma
Автор

Да, очень интересно про асинхронщину, особенно в твоём изложении. Спасибо за доступное объяснение.

tdfrrpw
Автор

Спасибо большущее! + ЗА видео про асинхронный python.

leonidzimin
Автор

Спасибо! Именно неявные для начинающих варианты работы библиотек знать полезно! А тут - просто новый пласт реальности =) Как обычно - респект Алексей!

andreymartynov
Автор

Про асинхронность однозначно хотим)
Особенно про то, какие бест практис приемы по работе с очередями и их обратку через воркеры в виде тасков.

MAKS
Автор

Спасибо за разбор! Информация по асинхронному python супер актуальна, будет круто, если запишешь ещё материалов по этой теме!

olegfedoruk
Автор

Отличный кейс! Спасибо! Конечно же, ждём про асинхронность.

vhvgpbp
Автор

Спасибо. Очень ждём про асинхронность. Прям надо! ) 👍💪

fedor_ado