(жонглирование лупами, например) - уже в асинкио есть интерфейс, который позволяет абстрагироваться от этого?
От чего?
От лупов
Что ты понимаешь под абстрагированием от лупов?
Начальный уровень разработки асинхронного кода, в рамках которого о лупах думать не приходится. Дёрнул что-то, всё запустилось и работает отлично
Лупами не стоит жонглировать, потому что это создает кучу проблем, потому что куча объектов в асинкайо привязывается (и к тому же незметно) к оперделенному лупу. Тем более, что такое жонглирование не дает никакого выигрыша в чем либо. Не понимаю, причем тут абстрагирвоание от лупов
Да, полностью согласен, но как бы ты запускал асинхронный энтрипоинт своего приложения?
А зачем о них думать? Сейчас луп даже не нужно никуда прокидывать. Если он у тебя один в рамках работы программы, то и думать о их совместной работе не нужно
asyncio.run()
Хорошо. Мне нужно вместе с запуском энтрипоинта запустить две корутины, которые хотел бы прокинуть не в рамках того модуля, где собираюсь запускать энтрипоинт. Как это сделать?
Что значит "прокинуть"?
Условно говоря, зарегистрировать к выполнению, как это делает create_task
Ну, ты можешь передать список корутин (не асинхронных функций, а корутин) в энтипоинт. Но логичнее всего, когда начинаются какие-то работы с асинхронным кодом, делать это все уже в запущенном лупе. То есть у тебя запускается главная функция, она создает таски, потом переходит в энтрипоинт
А как таски создать?)
Как обычно
Если честно, не знаю. Можно пример?
import asyncio async def task1(): pass async def task2(): pass async def entry_point(): pass async def main(): asyncio.create_task(task1()) asyncio.create_task(task2()) await entry_point() if __name__ == '__main__': asyncio.run(main())
Обсуждают сегодня