один и тот же loop?
Хотя, я запускаю файл __main__.py и там: 1) импортируется файл __init__.py из bot/ 2) В этом файле объявляется loop 3) Этот же луп можно получить сразу же после объявления в этом файле через asyncio.get_event_loop() 4) Потом импортируются tasks.py в котором я тоже могу получить тот же луп через asyncio.get_event_loop() (Но внутри библиотеки он сам это делает) 5) Потом запускается polling в боте и луп становится running? Я правильно понимаю?
что значит "объявляется loop"?
Ну, вот это я называю "объявляется loop": asyncio.set_event_loop_policy(uvloop.EventLoopPolicy()) loop = asyncio.new_event_loop() asyncio.set_event_loop(loop)
Я тебе кажется говорил что не нужно тебе этого делать да?
во-первых uvloop предоставляет хелпер uvloop.install() во-вторых тебе нужно всего лишь сделать uvloop.install() до того как кто-нибудь попросит event loop и все.
Ну, ты спросил "зачем я это делаю" и сказал, что не нужно его никуда импортировать. Наверное, чтобы понять как в потоке создается луп, стоит посмотреть сурсы..
чтобы проверить какой loop используется просто потом достаточно сделать asyncio.get_event_loop \ asyncio..get_running_loop
А в какой момент loop становится running?
в тот момент, когда его кто-то запускает. очевидно что get_running_loop имеет смысл использовать внутри корутины, поскольку та априори выполняется в запущенном event loop.
Понял, спасибо. Пытался найти какие-то углубленные ролики на ютубе по async, но ничего особо не находил. Вот это сейчас пытаюсь досмотреть https://www.youtube.com/watch?v=Y4Gt3Xjd7G8
а какие вопросы у тебя?
Уже на мой вопрос ответили, понял, что есть огромные пробелы в понимании asyncio, так что буду закрывать их
Не стесняйся задавать вопросы
Обсуждают сегодня