python-3.x - Pyro4用于非网络进程间通信

标签 python-3.x pyro

我目前正在使用 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/

相关文章:

Python 从字符串创建模块并运行该模块

python-3.x - 使用 Pandas 时出现错误 urlopen 错误 [SSL : CERTIFICATE_VERIFY_FAILED] certificate verify failed

python - 如何删除第一级索引,然后将剩余的索引值与 pd DataFrame 的自定义逻辑合并?

python - PyRo 和 RPyC python 库的优缺点是什么?

mysql - 使用 sqlalchemy 和 pyro 进行 session 管理

Python 如何读取匿名 linux 文件的 GPIO 事件

python - Pandas,合并 2 个数据框

python - 我如何编写装饰器来将某些内容包装在带参数的上下文管理器中?

python - Pyro4 : Failed to locate the nameserver