Django: переменные уровня приложения

Я создал приложение Django-rest-framework. Он предоставляет некоторый API, который выполняет некоторые операции get / set в БД MySQL.

У меня есть требование сделать HTTP-запрос к другому серверу и добавить этот ответ вместе с обычным ответом. Я пытаюсь использовать самодельный пул HTTP-соединений для выполнения HTTP-запросов вместо создания новых соединений для каждого запроса.

Какое наиболее подходящее место для хранения объекта пула HTTP-соединений на уровне приложения?

Я искал вокруг, и есть несколько решений, каждое из которых имеет свои недостатки. Вот некоторые:

Создавать одноэлементный класс пула в файле diff, но это не очень хороший питонный способ. Существуют различные дискуссии о том, почему бы не использовать шаблон проектирования Singleton.

Кроме того, я не знаю, насколько разумно было бы объединить в пул? (:П)

Держать его вв этом.py из приложения dir. Проблема с этим заключаются в следующем:Он должен содержать только импорт и вещи, связанные с этим.Будет трудно выполнить модульное тестирование кода, потому что импорт будет происходить до насмешки, и он действительно попытается попасть в API.

Использовать сеансы, но я думаю, что это имеет больше смысла, если это было что-то конкретное для пользовательского сеанса, например, для конкретного номера пользователя и т. Д.

Также объект должен быть сериализуемым. Я не знаю, как пул HTTP-соединений может быть сериализован.

Чтобы сохранить его глобальным в views.py, но это также не рекомендуется.

Как лучше всего хранить такие переменные уровня приложения / глобального уровня?

Ответы на вопрос(1)

Ваш ответ на вопрос