Форум сайта python.su
0
Здравствуйте!
Помоги мне решить некоторые проблемки. Суть всей программы:
Приложение(0) загружает данные в массив из файла, в котором хранится вся информация о настройках. Есть веб-сервер построенный на Flask, через который можно изменять настройки в массиве и отправлять данные в ком порт. Необходимо запустить еще одно приложение(1), которое так же могло изменять этот массив и так же отправлять данные в ком порт. Приложение(1) работает циклично, просто опрашивает в зависимости от ответов принимает решение и идет к другому устройству .
Мой вариант как это сделать.
Приложение(0) читает данные и все, далее приложение(1) работает постоянно, но как только с веб-сервера приходит запрос, то оно останавливается, сервер обрабатывает запрос и ждет еще секунд 10-15, если нет больше запросов, то снова запускается приложение(1). Можно и без времени пришел запрос, обработали, дальше пошли.
Основная проблема я не знаю как это все организовать, все это связано с многопоточностью, а я в ней вообще ноль. Может по рекомендуете хорошую доступную литературу или же поможете набросать каркас, объясните, что и как связано, как включать еще новые звенья. Питон изучаю недавно, логику программы разработать мне не сложно, сложнее написать ее на этом языке.
Офлайн
857
beivevОбычно на Flask пишут веб-приложение, которое размещают на веб-сервере.
Есть веб-сервер построенный на Flask
beivevКакой запрос приходит с веб-сервера? Это веб-сервер принимает запросы от клиентов, обрабатывает их и посылает клиентам ответы.
но как только с веб-сервера приходит запрос
Офлайн
0
Хорошо, понял свои ошибки, постараюсь написать конкретнее.
Приложение(0) должно загружать настройки из файла.
Приложение(1) на основе этих настроек производит опрос нескольких устройств через ком порт по кругу, в случаях ошибки отправляет смс через 3G модем(но это пока в планах, модем ищу чтобы разобраться с ним).
Приложение(3) написанное на Flask, в котором можно изменять настройки для приложения(1), и отправлять команды в ком порт. (мне кажет я здесь опять запутался)
Теперь о самих командах:
http://mattrichardson.com/Raspberry-Pi-Flask/
За пример взят Project: WebLamp. Только там изменяется состояние пинов на Raspberry Pi, а мне нужно на Arduino, через ком порт, RS485. Так пользователь выбирает, например, включить свет в веб-интерфейсе, сервер обрабатывает запрос и дает команду Arduino. Но при этом в веб-интерфейсе будет пункт настройки, сервер так же должен обработать такого рода запрос, внести необходимые изменения в файл и данные приложение(1), чтобы ничего не перезапускать.
Вчера на форуме нашел Celery, распределение задач, может и через него как-то можно? Проблема в том что приложения имеют доступ к одни и тем же данным, и не хотелось бы чтобы они одновременно к ним обращались.
Отредактировано beivev (Янв. 12, 2016 09:58:31)
Офлайн
857
beivevДа скорее всего.
Вчера на форуме нашел Celery, распределение задач, может и через него как-то можно?
Офлайн