Python 3.12+Асинхронное программированиефункция
asyncio.create_eager_task_factory()
задачи
Создаёт фабрику жадных задач на основе своего класса задачи — например, подкласса Task с журналированием.
Синтаксис
loop.set_task_factory(asyncio.create_eager_task_factory(custom_task_constructor))
eager_task_factory — это и есть create_eager_task_factory(asyncio.Task); своя фабрика нужна, только если вы подменяете класс задачи. Класс обязан принимать параметр eager_start, как asyncio.Task: обычный подкласс, не трогающий __init__, подходит. Жадный старт меняет порядок выполнения так же, как у готовой фабрики. Появилась в 3.12.
Примеры
import asyncio
class MyTask(asyncio.Task):
pass
async def quick():
return 'готово'
async def main():
loop = asyncio.get_running_loop()
loop.set_task_factory(asyncio.create_eager_task_factory(MyTask))
task = asyncio.create_task(quick())
print(type(task).__name__, task.done()) # → MyTask True
asyncio.run(main())
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности