我有两个必须相互通信的程序。他们应该共享状态(变量,文件 - 我不知道如何实现这一点)。 一个程序应该读取它并对变化做出反应 - 另一个程序应该写入这个全局状态。
为此目的使用文件的速度甚至都很慢,很难读取有人同时写入的文件。
在程序之间实现这种共享状态的最佳方法是什么? (寻找跨平台解决方案)
答案 0 :(得分:0)
保持两个进程在状态中同步的常规方法是使用IPC(进程间通信)。但IPC可能无法在这里工作,如果通过"跨平台"你是说,例如在Linux上使用python应用程序与Windows上的本机Windows应用程序保持同步。在这种情况下,你几乎坚持使用HTTP来提供Json,XML等服务。
将状态写入网络可访问的临时文件将产生各种问题。更好的方法是让一个流程充当服务器",为客户提供状态"客户端"流程。当客户端想要更新其状态时,它会在当时从服务器请求最新状态。服务器使用包含最新状态的Json或等效对象进行响应。交易是离散的。在另一个进程正在编写文件或读取过时的文件时,没有机会尝试读取文件。
答案 1 :(得分:-1)
实现这一目标的一个想法是将数据(变量,状态等)导出到json文件中并将其存储在临时文件中。完成此操作后,使用第二个程序,您可以读取第一个程序生成的json文件并解析它,以便将这些变量分配给第二个程序。
如果您正在使用网络中的这些程序,那么我建议使用REST。
XML和Json是跨平台交换信息的格式。您必须确保在两个程序中都有一个Json解析器。
我希望有所帮助。