Встречается на собеседованиях • сегодня

Приведи пример своей ошибки на прошлом проекте

Однажды я столкнулся с проблемой при работе с асинхронным кодом. Я использовал asyncio.gather() для параллельного выполнения запросов к API, но не ограничил количество одновременных запросов. Это привело к тому, что сервер начал возвращать 429 ошибки (Too Many Requests).

Ошибка:

python
async def fetch_data(urls):
    # Без ограничений - перегружаем сервер
    tasks = [fetch(url) for url in urls]
    return await asyncio.gather(*tasks)

Исправление:
Добавил семафор для контроля количества одновременных запросов:

python
async def fetch_with_limit(urls, limit=10):
    semaphore = asyncio.Semaphore(limit)
    async def fetch(url):
        async with semaphore:
            return await fetch(url)
    tasks = [fetch(url) for url in urls]
    return await asyncio.gather(*tasks)

Вывод: важно учитывать нагрузку на внешние сервисы и ограничивать параллельные операции.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы