python - 将值从一个 python 脚本发送到另一个已经运行的脚本
问题描述
我试图了解如何开发一个由在 linux 机器中运行的两个 python 脚本组成的系统。
第一个在系统启动时启动并始终运行,基本上连接到 MQTT 服务器并等待其他 python 脚本。第二个是从命令行调用的,做一些工作,然后将一些数据(基本上是三个字符串)传递给第一个,然后退出。
在这种情况下,将数据从脚本二传递到脚本一的“正确”方式是哪一种?
解决方案
有多种方法可以实现这一点(阻塞和非阻塞)。根据您的 MQTT 服务器,您可以在 pub/sub 方法中使用它来将数据从临时脚本传递到正在运行的脚本。
如果这不可能,则可以使用另一个 pub/sub 服务器作为例如redis。尤其是 redis 的 pub/sub 功能对此非常有用。redis
在 python 中得到很好的支持。
另一种更轻量级的可能性是使用First In First Out
(FIFO) queue cf article on using fifos in python or blocking vs. non-blocking fifos
如果两个进程都在同一台计算机上运行,那么 FIFO 很容易使用。redis
如果两个脚本都在不同的计算机上运行会更好。
推荐阅读
- video - 这种不良影响的通用名称是什么?
- html - 是否有一个引导类来处理所有 col 宽度?
- version-control - 在 Wix 中修改产品版本
- gmp - 版本号不匹配:gmp.h 和 libgmp 不一致
- javascript - Javascript:在动态添加的 DOM 元素上添加点击事件
- sql - 字符串的 CHECK 约束以包含一定数量的数字以及某些数字。(甲骨文 SQL)
- ruby-on-rails - 在 Rails 下拉列表中添加空白值并警告空白值
- powerbi - 将行值拆分为多列
- groovy - 如何在readyapi中迭代excel数据源步骤以将值传递给grrovy测试步骤
- monetdb - 允许任意用户读取 MonetDB 的 sys.queue