Возможно ли запустить программу на python с дополнительным HTTP-сервером в бесконечном цикле?

#python #raspberry-pi

#python #raspberry-pi

Вопрос:

Я хочу запустить программу в бесконечном цикле, которая обрабатывает GPIO в raspberry PI и получает запросы в бесконечном цикле (как HTTP-сервер). Возможно ли это? Я попробовал фреймворк Flask, но бесконечный цикл ожидает запросов, а затем моя программа выполняется.

Комментарии:

1. Почему бесконечный цикл?

2. Потому что я хочу обрабатывать запросы, а также что-то делать со своим оборудованием.

3. Я не верю, что бесконечный цикл — это то, что вы ищете — вам нужно будет запрограммировать систему, которая простаивает до тех пор, пока ей не будет передана команда или параметр для выполнения какой-либо функции. В качестве альтернативы, если это серверная система, продолжайте вызывать поиск входящих данных для выполнения какой-либо службы. Ни один из них не является фактическим «бесконечным циклом».

4. Есть ли у вас выбор использовать другую платформу или Python — единственный выбор? Я бы посоветовал вам перейти на NodeJS, это облегчит вашу жизнь и эту задачу

Ответ №1:

Если бы я столкнулся с подобной проблемой прямо сейчас, я бы сделал это:

1) Сначала я бы попытался выяснить, могу ли я использовать цикл событий веб-фреймворка для выполнения кода, взаимодействующего с raspberry-pi асинхронно (т. е. Внутри обработчиков событий).

2) Если бы мне не удалось найти веб-фреймворк, достаточно расширяемый, чтобы делать то, что мне нужно, или если бы оказалось, что часть raspberry-pi не может быть выполнена асинхронно (например, выполнение занимает много времени), я бы выяснил, в чем разница между потоками и процессами в python, которые что из двух я могу использовать в моей конкретной ситуации и какие инструменты могут мне в этом помочь?

Этот ответ так же конкретен, как и вопрос (на момент написания).