Версия источника: 4880e8b4372c96001c2e052be28b68a95d31252b
Синхронизировано: 2026-11-09T11:15:07.649Z
Источник: https://github.com/sergey-from-riders/vibecoding-base/tree/4880e8b4372c96001c2e052be28b68a95d31252b

<a id="backend-async"></a>

# Async I/O

## Коротко

В async-коде используйте асинхронный ввод-вывод или выносите блокирующую работу.

## Плохо

```python
async def handler():
    time.sleep(5)
```

## Хорошо

```python
async def handler():
    await asyncio.sleep(5)
```

## Почему

Один блокирующий вызов может задержать другие запросы процесса.

## Когда применять

Для Python asyncio. CPU-задачи обычно требуют процессов или выделенного worker; to_thread не делает произвольную CPU-работу параллельной в обычной сборке с GIL.

## Как проверить

- Параллельный лёгкий запрос остаётся отзывчивым?

## Человек

Определяет требования к задержке и пропускной способности.

## Агент

Реализует правило в коде сервиса и проверяет ошибку, отмену и граничные входные данные.

Контроль результата:

- Параллельный лёгкий запрос остаётся отзывчивым?

## Источники

- [Coroutines and tasks — Python 3.14.10 documentation](https://docs.python.org/3.14/library/asyncio-task.html)

Уровень: Обязательно. Проверено: 2026-11-09. Изменено: 2026-11-09.

[Исходный файл](https://github.com/sergey-from-riders/vibecoding-base/blob/4880e8b4372c96001c2e052be28b68a95d31252b/registry/standards/backend/python/rules/async.md)
