Python Glossary English

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Сообщить о неточности