Встречается на собеседованиях • сегодня
Приведи пример сложной задачи на проекте
Одна из сложных задач, с которой я столкнулся — реализация асинхронного парсинга большого объема данных с ограничениями по частоте запросов.
Проблема:
Нужно было собрать данные с нескольких API, каждый из которых имел лимит на количество запросов в секунду. Плюс требовалась обработка и сохранение данных без потерь при ошибках.
Решение:
Использовал aiohttp для асинхронных запросов и asyncio.Semaphore для контроля скорости. Для отказоустойчивости добавил retry-логику и очередь задач.
python
import aiohttp
import asyncio
async def fetch(session, url, semaphore):
async with semaphore:
try:
async with session.get(url) as response:
return await response.json()
except Exception as e:
print(f"Error fetching {url}: {e}")
return None
async def main(urls, max_concurrent=5):
semaphore = asyncio.Semaphore(max_concurrent)
async with aiohttp.ClientSession() as session:
tasks = [fetch(session, url, semaphore) for url in urls]
return await asyncio.gather(*tasks)Сложности:
- Баланс между скоростью и ограничениями API.
- Обработка частичных сбоев без остановки всего процесса.
- Оптимизация использования памяти при большом объеме данных.

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