gpt4 book ai didi

python - 如何在不写入磁盘的情况下在python进程之间共享数据

转载 作者:太空狗 更新时间:2023-10-29 17:18:24 25 4
gpt4 key购买 nike

你好,我想在 python 和进程之间共享少量数据(< 1K)。数据是物理 pc/104 IO 数据,变化迅速且频繁 (24x7x365)。将有一个“服务器”写入数据,多个客户端读取数据的一部分。这将运行的系统使用闪存(CF 卡)而不是硬盘驱动器,所以我担心使用基于文件的方案会耗尽闪存。我还想使用更少的电力(处理器时间),因为我们 100% 由太阳能供电。

  • 这是一个有效的担忧吗?我们可能会将 CF 卡换成 SSD。
  • 使用 mmap 更改值是将数据物理写入磁盘还是虚拟文件?
  • 我们将在 Debian 上运行,因此 POSIX IPC for python 模块可能是最好的解决方案。有人用过吗?
  • 有没有人试过Python Object Sharing (POSH)模块?乍一看,它看起来很有前途,但它处于“Alpha”阶段,似乎并未积极开发。

谢谢

更新:我们将最大数据更新速率降低到大约 10 Hz,但更常见的是 1 Hz。只有在值发生变化时才会通知客户端,而不是以恒定的更新速率。我们采用了多服务器/多客户端模型,其中每台服务器都专注于某种类型的仪器或功能。由于事实证明大部分编程将由 Java 程序员完成,因此我们最终使用 JSON-RPC over TCP。服务器将用 Java 编写,但我仍然希望用 Python 编写主要客户端并正在研究 JSON-RPC 实现。

最佳答案

在服务器进程中将数据写入文件的替代方法可能是直接写入客户端进程:

使用 UNIX 域套接字(如果客户端在不同机器上运行,则使用 TCP/IP 套接字)将每个客户端连接到服务器,并让服务器写入这些套接字。根据您的特定处理模型,选择客户端/套接字可能由服务器完成(例如循环法)或由客户端发出信号表示他们已准备好进行更多操作。

关于python - 如何在不写入磁盘的情况下在python进程之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2006624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com