Как сделать один глобальный экземпляр класса в Django?
Вечер добрый.
Вопрос заключается в следующем, мне нужно организовать звонки (асинхронно, по сигналам) по сипу во время определенных событий в Django.
Я написал небольшой класс с использованием PJSUA библиотеки, и мне нужно создать один его экземпляр при старте приложения, так что бы он был виден везде, и я мог вызвать make_call(...). А так же надо что бы этот класс мог брать данные из базы, используя стандартную модель.
На всякий случай, я не программист, есть небольшой опыт в написании различных скриптов на python (исключительно админ таски) и никакого ООП
Пока склоняюсь к следующим вариантам
Celery, но не могу найти как сделать таску которая запустится при старте app и будет один экземпляр (shared на сколько я понимаю все равно создается по кол-ву процессов)
Использовать на прямую базу данных или какой нибудь MQ, сделать по сути просто свой сервис.
Ну или как вариант встроить туда flask / twisted и просто управлять через небольшой API
Буду признателен за полезные ссылки на примеры кода или возможно модуль для django который мне поможет.
Возможно кому нибудь пригодится, в моем варианте мне подошло использование Custom management commands
Я написал небольшой сервис который может использовать все модели Django, а в основной модели переопределил save() и проверяю подключенных агентов (sip/email/sms/...) и в каждом вызываю нужный метод.
Возможно не совсем правильно но довольно удобно.