Реакция на веб-запрос при ответе на него - Python 3.7 - PullRequest
0 голосов
/ 21 июня 2020

В настоящее время я пытаюсь понять, как разместить простой веб-сервер для обработки запросов POST с помощью Python 3.7. Моя проблема в том, что я хочу отвечать на запросы после того, как они были получены, но представленные данные POST должны использоваться для воспроизведения определенного c аудиофайла на моем RaspberryPi. За два дня поиска в Google я не мог понять, как постоянно запускать веб-сервер при обработке входящих запросов в фоновом режиме.

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

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

1 Ответ

0 голосов
/ 21 июня 2020

Я всегда заканчиваю тем, что мой веб-сервер получает запрос, который затем обрабатывается, но пока это происходит, веб-сервер недоступен.

Чтобы решить эту проблему, вы можете создать отдельный thread или process для обработки запроса, пока основной поток / процесс возвращается к обработке новых запросов.

Рабочий процесс будет примерно таким:

  1. The main process получает запрос
  2. main process создает new process для обработки запроса.
  3. main process возвращается к прослушиванию новых запросов, в то время как new process обрабатывает полученный запрос .

Предполагая, что вы не знакомы с multithreading и multiprocessing, я бы посоветовал вам go немного прочитать об этих темах. Скорее всего, multithreading решит вашу проблему. Итак, вы можете начать с этого. Вот хорошая статья об этом: Введение в многопоточность в Python

...