@ilnurjick

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

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

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

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы