Встречается на собеседованиях • сегодня
Как влияет порядок вызова create_task и await на контекст логирования и исполнение кода
Порядок create_task и await влияет на контекст логирования и порядок выполнения:
awaitпередcreate_task- Код выполняется синхронно до
await - Контекст логирования сохраняется
pythonasync def foo(): logger.info("Start") await asyncio.sleep(0) # точка переключения task = asyncio.create_task(bar()) # контекст сохраняется- Код выполняется синхронно до
create_taskпередawait- Задача стартует сразу, но может выполниться позже
- Контекст может потеряться, если был
awaitпосле создания
pythonasync def foo(): logger.info("Start") task = asyncio.create_task(bar()) # контекст копируется здесь await asyncio.sleep(1) # задача может выполняться с другим контекстом
Для сохранения контекста используйте contextvars или передавайте контекст явно. В asyncio контекст копируется при создании задачи, но не при последующих переключениях.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы