问题描述
我打算为远程传感器设置一个小型代理服务,该服务仅接受一个连接。我有一个临时解决方案,现在我正在设计一个更强大的版本,因此更深入地研究了python多处理模块。
我使用主进程在python中编写了几个系统,这些系统使用multiprocessing
模块生成子进程,并使用multiprocessing.Queue
在它们之间进行通信。效果很好,其中某些程序/脚本正在生产环境中发挥作用。
新案例略有不同,因为它使用了2 + n个进程:
- 一个数据收集器,它以100Hz的频率从传感器读取数据,并偶尔偶尔接收短ASCII字符串作为命令
- 一个主服务器,它绑定到套接字并监听新连接和产生的内容...
- n个子服务器,用于处理想要获取传感器数据的客户端
使用multiprocessing.Queue
可以很好地直接管理从子级服务器到数据收集器的通信,而iamRoleStatements
可以很好地管理n:1连接,但是我有其他问题。我也不能为此使用队列,因为所有子服务器需要在它们处于活动状态时获取传感器生成的所有数据。至少我还没有找到一种配置Queue来模仿这种行为的方法,因为get故意使Queue发挥最大作用。
我已经研究了共享内存,这极大地增加了管理开销,因为据我使用共享内存的了解,我基本上需要自己实现一个流缓冲区。
我现在看到的唯一安全的方法是使用Redis服务器和消息队列,但是我有点犹豫,因为这将需要比我想要的更多的基础结构。
是否存在纯python内部方式?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)