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

Как можно экстренно реанимировать запрос

Для экстренного восстановления запроса можно использовать несколько подходов:

  1. Retry с экспоненциальной задержкой:
python
import requests
from time import sleep

def make_request(url, max_retries=3):
    for attempt in range(max_retries):
        try:
            response = requests.get(url, timeout=5)
            response.raise_for_status()
            return response
        except (requests.exceptions.RequestException, requests.exceptions.Timeout) as e:
            if attempt == max_retries - 1:
                raise
            sleep(2 ** attempt)  # Экспоненциальная задержка
  1. Использование сессии с настройками:
python
session = requests.Session()
session.mount('https://', requests.adapters.HTTPAdapter(
    max_retries=3,
    pool_connections=10,
    pool_maxsize=100
))
  1. Асинхронные запросы (если проблема в блокировке):
python
import aiohttp

async def fetch(session, url):
    async with session.get(url) as response:
        return await response.text()

Для критически важных запросов стоит реализовать:

  • Circuit Breaker паттерн
  • Локальное кэширование
  • Fallback-механизм
  • Мониторинг состояния сервиса

Важно учитывать идемпотентность операций при повторных запросах.

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

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

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

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