Веб-приложение на Django и фоновый процесс обработки данных, как сделать?
Добрый день!
Я разрабатываю фуллстак веб-приложение, использую Django.
В целом статично все хорошо отрабатывает, все запросы.
При запросе у меня приложение обращается по вебсокету к другому серверу и получает информацию с датчиков.
Так вот, мне нужно контролировать значения с датчиков, к примеру если значение с датчика температуры превысило пороговое, нужно отправить уведомление.
Варианты решения, которые я вижу:
1) Выполнять контроль в теле функции обработки запроса (будет работать только при запросах)
2) Создать отдельное приложение, которые будет проводить контроль, результаты выкидывать в БД, а уже Django приложение будет при выполнении запроса передавать на сайт информацию с БД
3) Вариант с celery (не работал с этим
4) В главном приложении django добавить разделение на потоки (первый поток обработка веб запросов), а другой поток это функция контроля параметров.
Подскажите, пожалуйста, кто сталкивался, кто как реализовывал.
2) Создать отдельное приложение, которые будет проводить контроль, результаты выкидывать в БД, а уже Django приложение будет при выполнении запроса передавать на сайт информацию с БД
Можно при помощи отдельного приложения периодически опрашивать датчики и отправлять результаты в какую-нибудь внешнюю систему мониторинга или СУБД временных серий. На Джанго можно только показывать графики с TSDB / системы мониторинга. Роль оповещения могут взять на себя как Джанго, так и внешние средства.
Использовать Celery - по необходимости, если есть нужда в фоновой обработке задач.
Я бы сделал таску, которая раз в (подставь значение) запускала функцию обращения к датчикам. Далее в зависимости от значения уже логика. Celery делает это очень легко. На проде тоже особо сложностей нет.