Отправка значений из одного скрипта Python в другой уже запущенный - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь понять, как я могу разработать систему, которая состоит из двух сценариев Python, запущенных в Linux-коробке.

Первый запускается при загрузке системы и всегда запускается, в основном подключается к серверу MQTT и ожидает другого скрипта Python. Второй вызывается из командной строки, выполняет некоторые работы и затем передает некоторые данные, в основном три строки, первой и затем завершает работу.

Какой «правильный» способ будет использоваться в этой ситуации для передачи данных из сценария два в сценарий один?

1 Ответ

0 голосов
/ 04 января 2019

Есть несколько способов сделать это (блокирование и неблокирование). В зависимости от вашего MQTT-сервера вы можете использовать его в подходе pub / sub для передачи данных из временного сценария в работающий.

Если это невозможно, можно использовать другой паб / субсервер, например, например. Redis . Особенно функциональность pub / sub Redis очень полезна для этого. redis хорошо поддерживается в Python.

Еще одна более легкая возможность - использовать очередь First In First Out (FIFO) c.f. статья об использовании fifos в python или блокирующие и неблокирующие fifo

FIFO просты в использовании, если оба процесса выполняются на одном компьютере. redis предпочтительнее, если оба сценария работают на разных компьютерах.

Существуют более сложные пакеты для межпроцессного взаимодействия, например, rabbitMQ , zeroMQ , .. но они могут быть излишними для вашего варианта использования ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...