Как сделать один глобальный экземпляр класса в Django?

Вечер добрый.
Вопрос заключается в следующем, мне нужно организовать звонки (асинхронно, по сигналам) по сипу во время определенных событий в Django.
Я написал небольшой класс с использованием PJSUA библиотеки, и мне нужно создать один его экземпляр при старте приложения, так что бы он был виден везде, и я мог вызвать make_call(...). А так же надо что бы этот класс мог брать данные из базы, используя стандартную модель.

На всякий случай, я не программист, есть небольшой опыт в написании различных скриптов на python (исключительно админ таски) и никакого ООП

Пока склоняюсь к следующим вариантам
Celery, но не могу найти как сделать таску которая запустится при старте app и будет один экземпляр (shared на сколько я понимаю все равно создается по кол-ву процессов)
Использовать на прямую базу данных или какой нибудь MQ, сделать по сути просто свой сервис.
Ну или как вариант встроить туда flask / twisted и просто управлять через небольшой API

Буду признателен за полезные ссылки на примеры кода или возможно модуль для django который мне поможет.

Спасибо
  • Вопрос задан
  • 237 просмотров
Решения вопроса 1
@rakhinskiy Автор вопроса
Возможно кому нибудь пригодится, в моем варианте мне подошло использование Custom management commands
Я написал небольшой сервис который может использовать все модели Django, а в основной модели переопределил save() и проверяю подключенных агентов (sip/email/sms/...) и в каждом вызываю нужный метод.
Возможно не совсем правильно но довольно удобно.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы