как подружить async с классам?
можно ли как то запустить класс в asyncio? Есть утрированный код:
import asyncio
class ODB:
def __init__(self, db):
self.db = db
self.table = None
def get_end_time(self, ids, name):
some_list = ["VOLG","TOMSK", "PERM"]
if self.db in some_list:
time.sleep(3)
return time.time(), " it's ok ", self.db
async def run(info):
o_db = ODB(info)
values = await o_db.get_end_time("'1674', '1675', '9362'","'06_2022','05_2022'")
return values
loop = asyncio.get_event_loop()
tasks = [loop.create_task(run("VOLG")), loop.create_task(run("TOMSK"))]
done, _ = loop.run_until_complete(asyncio.wait(tasks))
print(done)
loop.close()
Сейчас код не работает из-за values = await o_db.get_end_time.
Как можно одновременно вызвать создание двух классов с последующим асинхронным выполнением?
Ответы (1 шт):
Автор решения: re1von
→ Ссылка
Вы можете сделать это с помощью asyncio.gather(...).
Например, вместо этого:
loop.run_until_complete(asyncio.wait(tasks))
Используйте это:
loop.run_until_complete(asyncio.gather(*tasks))