Django 1.9 основанное на классе представление синглтона
Есть одна проблема с представлениями на основе классов в Django, которую я не могу найти, и я не могу найти простое решение.
Давайте создадим некоторое представление на основе классов:
class userspaceDispatcher(View):
def __init__(self,*args, **kwargs):
super().__init__(*args, **kwargs)
self.someSharedStuff = MongoConnector() # As example
def dispatch(self, request, *args, **kwargs):
# Some code here, it does not matter
return dispatchResult
Затем, когда мы сделаем HTTP-вызов, который перейдет на мой взгляд, каждый раз будет создаваться новый экземпляр userspaceDispatcher. Как пример, для обработки запросов мне нужен соединитель MongoDB. Как я вижу на профилировщике, инициализация соединителя занимает 5-7 мс.
Так что вопрос - как сделать просмотр класса синглтона? Не инициализировать каждый запрос?
1 ответ
Решение для такого рода вещей является таким же для представления на основе классов, как и для представления на основе функций. Определите общее значение за пределами представления на уровне модуля, чтобы оно создавалось только один раз для каждого процесса.