将值从一个python脚本发送到已经运行的另一个

时间:2019-01-04 13:48:03

标签: python linux python-2.7

我试图了解如何开发由Linux盒子中运行的两个python脚本制成的系统。

第一个启动于系统引导并始终运行,基本上连接到MQTT服务器并等待另一个python脚本。从命令行调用第二个,先做一些工作,然后将一些数据(基本上是三个字符串)传递给第一个,然后退出。

在这种情况下,哪种方法用于将数据从脚本2传递到脚本1的“正确”方法?

1 个答案:

答案 0 :(得分:0)

有多种方法可以完成此操作(阻止和非阻止)。根据您的MQTT服务器,您可以在发布/订阅方法中使用它,以将数据从临时脚本传递到正在运行的脚本。

如果不可能,则可以使用其他发布/订阅服务器,例如redis。特别是redis的pub / sub功能对此非常有用。 redis在python中得到很好的支持。

另一个更轻量的可能性是使用First In First Out(FIFO)队列c.f。 article on using fifos in pythonblocking vs. non-blocking fifos

如果两个进程都在同一台计算机上运行,​​

FIFO易于使用。如果两个脚本都在不同的计算机上运行,​​则最好使用redis

有更多复杂的程序包用于进程间通信,例如rabbitMQzeroMQ ...,但对于您的用例来说,它们可能会显得过分杀伤……