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 ответ

Решение

Решение для такого рода вещей является таким же для представления на основе классов, как и для представления на основе функций. Определите общее значение за пределами представления на уровне модуля, чтобы оно создавалось только один раз для каждого процесса.

Другие вопросы по тегам