Встречается на собеседованиях • сегодня
Если endpoint работает 30 секунд, какие действия предпримешь
Для начала, разберу возможные причины и решения:
-
Оптимизация запроса
Проверю, нет ли N+1 проблем, сложных JOIN'ов или отсутствия индексов в БД. Пример с индексом:python# До User.query.filter(User.name == 'John').all() # После добавления индекса index = Index('idx_user_name', User.name) -
Кеширование
Добавлю кеш для тяжелых запросов через Redis:pythonfrom flask_caching import Cache cache = Cache(config={'CACHE_TYPE': 'Redis'}) @cache.cached(timeout=60) def slow_endpoint(): # heavy processing
-
Асинхронность
Переведу на async/await если есть IO-bound операции:python@app.route('/data') async def get_data(): result = await db.fetch('SELECT * FROM large_table') return jsonify(result) -
Фоновые задачи
Для CPU-bound задач вынесу в Celery:python@celery.task def process_data(data): # heavy computation @app.route('/process') def start_process(): process_data.delay(request.json) return {'status': 'started'} -
Пагинация
Разобью ответ на чанки:python@app.route('/items') def get_items(): page = request.args.get('page', 1, type=int) per_page = 50 pagination = Item.query.paginate(page, per_page) return jsonify({ 'items': [item.to_dict() for item in pagination.items], 'total': pagination.total }) -
Профилирование
Использую cProfile или line_profiler для поиска узких мест. -
Лимитирование
Добавлю rate limiting для защиты от злоупотреблений.
Выбор решения зависит от конкретного случая - сначала нужно определить bottleneck через мониторинг и профилирование.

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