@ilnurjick

Веб-приложение на Django и фоновый процесс обработки данных, как сделать?

Добрый день!
Я разрабатываю фуллстак веб-приложение, использую Django.
В целом статично все хорошо отрабатывает, все запросы.

При запросе у меня приложение обращается по вебсокету к другому серверу и получает информацию с датчиков.

Так вот, мне нужно контролировать значения с датчиков, к примеру если значение с датчика температуры превысило пороговое, нужно отправить уведомление.

Варианты решения, которые я вижу:
1) Выполнять контроль в теле функции обработки запроса (будет работать только при запросах)
2) Создать отдельное приложение, которые будет проводить контроль, результаты выкидывать в БД, а уже Django приложение будет при выполнении запроса передавать на сайт информацию с БД
3) Вариант с celery (не работал с этим
4) В главном приложении django добавить разделение на потоки (первый поток обработка веб запросов), а другой поток это функция контроля параметров.

Подскажите, пожалуйста, кто сталкивался, кто как реализовывал.
  • Вопрос задан
  • 225 просмотров
Решения вопроса 1
2ord
@2ord
2) Создать отдельное приложение, которые будет проводить контроль, результаты выкидывать в БД, а уже Django приложение будет при выполнении запроса передавать на сайт информацию с БД

Можно при помощи отдельного приложения периодически опрашивать датчики и отправлять результаты в какую-нибудь внешнюю систему мониторинга или СУБД временных серий. На Джанго можно только показывать графики с TSDB / системы мониторинга. Роль оповещения могут взять на себя как Джанго, так и внешние средства.

Использовать Celery - по необходимости, если есть нужда в фоновой обработке задач.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Everything_is_bad
2 или 3
Ответ написан
Комментировать
@xitcliff
Я бы сделал таску, которая раз в (подставь значение) запускала функцию обращения к датчикам. Далее в зависимости от значения уже логика. Celery делает это очень легко. На проде тоже особо сложностей нет.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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