Например, предположим, что у меня есть объекты класса Poller (poller1, poller2, poller3 и т. д. до poller) с функцией «чтения» (содержит бесконечный цикл). Точно так же у меня есть объекты класса Listener (listener1, Listener2, Listener3 и так далее до Listenern).
Эти функции используют асинхронные и асинхронные вызовы, и все работает так, как я задумал. Однако я не уверен, что это правильный подход для этой задачи и можно ли ее решить более эффективно.
Функция, которая запускает мой код, выглядит следующим образом:
Код: Выделить всё
async def loop(self):
...
tasks = [
asyncio.create_task(device.read())
for poller in self.pollers
]
tasks.extend(
[
asyncio.create_task(listener.start())
for listener in self.listeners
]
)
for task in tasks:
await task
Подробнее здесь: https://stackoverflow.com/questions/792 ... ng-asyncio
Мобильная версия