首页 > 解决方案 > Pyro4 杀死空的名称服务器

问题描述

我在分布式系统中使用 Pyro4。我的问题是两个网络连接后可能会有很多名称服务器。对我来说没问题,但如果其中任何一个是空的(没有注册对象),我的网络可能会失败。这是因为我正在实现和弦,我需要知道是否已经有任何和弦节点在运行(如果空的名称服务器响应,则将创建两个和弦环。如果名称服务器为空,有什么方法可以杀死它?
我的代码是在 python3 中。谢谢

标签: pythonpyrochordpyro4

解决方案


Pyro 的名称服务器假定它一直在运行:您永远不知道稍后是否会有人想要注册一个新名称。如果您真的需要它自动关闭,您将不得不将默认名称服务器包装在一些自定义代码中,或者使用某种形式的看门狗进程来杀死名称服务器,如果它检测到它有 0 个条目。

您可以通过对名称服务器的常规 Pyro 调用获取条目数:ns.count(). 由于显而易见的原因,不可能通过这样的 Pyro API 调用远程关闭名称服务器,因此需要看门狗进程。


推荐阅读