Работа с железом через web на python?

Есть небольшое консольное приложение, умеет опрашивать монопольно оборудование на com порту. Хочу привесить к нему web морду на flask. Пробовал выкинуть на него данные с железа все хорошо в режиме запрос с одного рабочего места(каждый запрос к странице производит прямой запрос к устройству на порту). Если запрашивать данные с разных рабочих мест, то естественно возникают проблемы, так как каждая открытая страница начинает ломится на порт. Вопрос в следующем какой алгоритм или промежуточную структуру использовать(так же в перспективе необходимы графики, возможно понадобится бд)?
  • Вопрос задан
  • 593 просмотра
Решения вопроса 1
@cardinalus
Если в планах графики то без БД вряд ли обойдетесь.

Вариант:
- приложение выполняется периодически (как удобно - планировщик, сервис, etc.) и данные пишет в БД
- WEB интерфейс отображает данные не с приложения а с БД
- при необходимости делаете кнопку на которую вешаете запрос актуальных данных (иногда может пригодиться).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@nirvimel
каждый запрос к странице производит прямой запрос к устройству на порту

Довольно плохое решение.
Во-первых, веб-сервер и работающая с железом программа должны запускаться в разных процессах.
Во-вторых, для коммуникации между процессами можете взять что-то типа pyzmq причем со стороны веб-сервера это нужно делать асинхронно, например, с использованием gevent + gevent-zeromq
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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