Какова лучшая практика для обмена requests.session между запросами в веб-приложении Django Rest Framework?

Безопасно ли использовать глобальную, статическую сессию для взаимодействия с внешними API? Существует ли разумный индикатор того, когда сессия должна быть обновлена, или использование сессии является плохой идеей?

Предыстория: В настоящее время я работаю над оптимизацией приложения Django Rest Framework, которое слишком долго (>1.2 секунды) получает ответы от удаленного API. Основываясь на их таймингах и сравнивая их с несколькими прогонами на Postman, самые длительные компоненты, похоже, были комбинацией TCP и SSL квитирования, когда они не были кэшированы (запуск django_cprofile_middleware против конечной точки показал аналогичную тему, с сотнями миллисекунд, потраченных на эти вышеупомянутые квитирования). Мне удалось сократить эти взаимодействия примерно до того же уровня в приложении, что и в Postman после первого запроса, используя общий requests.session вместо базового requests.get (ближе к 200 мс на запрос).

Вернуться на верх