如何在python进程之间实时共享对象和数据?

2024-01-17

我正在尝试在 Python 中为实时应用程序、多重处理和大文件找到一种合理的方法。

一个父进程生成 2 个或更多子进程。第一个孩子读取数据,保存在内存中,其他孩子以管道方式处理它。数据应该被组织成一个对象,发送到下面的进程,进行处理、发送、处理等等。

由于开销(序列化等),可用的方法(例如管道、队列、管理器)似乎不够用。

对此有适当的方法吗?


我已经使用 Celery 和 Redis 在高内存应用程序中进行实时多处理,但这实际上取决于您想要完成的任务。

我发现 Celery 相对于内置多处理工具(管道/队列)的最大好处是:

  • 开销低。您直接调用函数,无需序列化数据。
  • 缩放。需要提高工作进程吗?只需添加更多工人即可。
  • 透明度。易于检查任务/工作人员并发现瓶颈。

如果要真正发挥性能,ZMQ 是我的首选。需要进行更多的设置和微调工作,但它已经尽可能安全地接近裸插座了。

免责声明:这都是轶事。这实际上取决于您的具体需求。在您走上任何道路之前,我会使用示例数据对不同的选项进行基准测试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在python进程之间实时共享对象和数据? 的相关文章

随机推荐