我目前正在使用 Pyro4 创建托管服务的守护程序,这些服务只是可以从其他守护程序托管的对象或脚本调用的对象。这些对象需要相当长的时间来初始化,因此我需要使这些对象保持事件状态,而不是简单地重新运行每次需要调用它们时创建它们的脚本。
实现非常简单,客户端代码的执行速度足以满足我的要求,并且很容易扩展功能。然而,Pyro4 是专门为在网络上运行的 python 程序而设计的,我只是在服务器内部运行这些守护进程。似乎没有 Python 包可以像 Pyro4 那样干净地处理守护进程和守护进程之间的通信。
我的问题:Pyro4 是否适合我的需求,或者是否有其他更标准的方法来处理此用例?
最佳答案
许多进程间通信协议(protocol)即使在单台机器上运行时也在使用“网络”。本地环回适配器上的“网络”连接(IPV4 地址 127.0.0.0/8 和 IPV6::1)应该特别快,因为这通常根本不经过物理网络接口(interface)。
此外,您是否知道 Pyro4 还支持通过 Unix domain sockets 进行通信?这些纯粹是本地系统资源。
总而言之,“Pyro4 是专门为通过网络运行的 python 程序而设计的”这句话是不正确的。我绝对希望 Pyro4 在进程之间使用,甚至在一台计算机上也是如此。如果您认为 Pyro4 有一些特别之处不适合此用途,请指出,以便改进!
关于python-3.x - Pyro4用于非网络进程间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46540416/