我在分布式系统中使用Pyro4。我的问题是两个网络连接后,可以有许多名称服务器。对我来说还可以,但是如果其中任何一个为空(没有注册任何对象),我的网络都会失败。
这是因为我正在实现和弦,并且我需要知道是否已经有任何和弦节点正在运行(如果空的名称服务器响应,那么将创建两个和弦环。
如果名称服务器为空,有什么方法可以杀死它?
我的代码在python3中。谢谢
答案 0 :(得分:0)
Pyro的名称服务器假定它一直在运行:您永远不知道以后是否会有人想要注册新名称。如果确实需要它来自动关闭,则必须将默认名称服务器包装在一些自定义代码中,或者使用某种形式的看门狗进程来检测名称服务器(如果它具有0个条目,则将其杀死)。
您可以通过对名称服务器ns.count()
的常规Pyro调用来获得条目数。由于明显的原因,不可能通过这样的Pyro API调用远程关闭名称服务器,因此需要监视程序。