Веб-приложение в MVC 5 с фоновыми / запланированными задачами MQTT
Привет,
так что я младший программист, и мне довольно трудно разобраться в этом самому.
Я создаю веб-приложение IoT на основе MVC 5, с подходом Code First database, который делает следующие вещи:
- Связь с датчиками по протоколу MQTT (mosquitto broker)
- Показывает значения и некоторые основные данные от датчиков на месте
- Импортирует ли значение данных из датчика в базу данных для каждого пользователя (или темы, потому что у каждого пользователя есть уникальная тема) каждые 5 часов
- Отправляет данные обратно брокеру для активации некоторой части оборудования после того, как пользователь указывает время между активациями оборудования и в течение длительного времени оборудование будет активно.
Итак, проблемы, с которыми я сталкиваюсь, таковы:
1. Как сохранить данные для каждого пользователя, если пользователь вышел из системы/ пользователь находится в автономном режиме/ приложение находится в автономном режиме?
2. Как создать таймер для сохранения данных каждые 5 часов?
Любые идеи, которые могли бы мне помочь, приветствуются.
Я пытаюсь найти самый простой способ решить эту проблему.
Что я уже пробовал:
Я это видел Quartz.NET, cron, HttpRuntime.Кэш (с истечением срока действия элемента), консольное приложение, веб-сервис могли бы помочь мне с этой проблемой, но я не совсем понимаю их действия.
О сохранении данных я также получил информацию о Mosquitto persistence, который сохраняет данные о брокере до тех пор, пока клиент не подключится, поэтому мне также интересно, насколько хорош этот подход?
F-ES Sitecore
MVC-это неправильная технология для использования. Веб-сайты - это технология запроса\ответа, то есть они "делают что-то", когда клиент запрашивает url-адрес, и как только url-адрес закончил генерировать свой ответ, он снова ничего не делает. Учитывая, что вы собираете данные с какого-то оборудования, которое не соответствует вашим потребностям, если только у вас нет чего-то, делающего постоянные запросы на ваш сайт, и эти запросы опрашивают оборудование.
Вам понадобится что-то постоянно работающее, способное удовлетворить ваши потребности, поэтому служба Windows, вероятно, является лучшим решением для вас. Сервис может обрабатывать все материалы MQTT, обновлять базы данных и т. д., И если вы хотите, чтобы эти данные были видны через интернет, то у вас может быть сайт MVC, который просто показывает соответствующие данные из базы данных пользователю, однако сайт MVC не будет принимать никакого участия в самом сборе данных.
Faris Karcic
Большое вам спасибо за ваш ответ!
Вы указали мне, в какую сторону идти, цените это!