正在检查是否可访问Pyro远程对象

2024-06-18 11:20:37 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的每个虚拟机上都有一个运行的Pyro服务器。这些都是相同的对象,我只是运行它们以确保可靠性。我希望能够监视这些对象是否是“活动的”和可到达的。在

假设我有他们的uri,我如何在不尝试运行实际对象的方法来查看它是否运行的情况下进行检查呢?在

一种选择是在这些对象中编写一个简单的noop方法,远程调用它,如果出现连接问题,我就知道该对象不可访问。在

在Pyro中是否有内置的方法来完成此操作?似乎是一个很常见的用例。在


Tags: 对象方法服务器远程情况uri用例内置
1条回答
网友
1楼 · 发布于 2024-06-18 11:20:37

您不必向对象添加noop/ping方法,因为您可以在代理对象上使用_pyroBind()方法。如果对象不可访问,它将引发CommunicationError。例如,要查看名称服务器是否在端口9999上运行:

import Pyro4
import Pyro4.errors

with Pyro4.Proxy("PYRO:Pyro.NameServer@localhost:9999") as p:
    try:
        p._pyroBind()
        print("YEP IT IS RUNNING!")
    except Pyro4.errors.CommunicationError:
        print("NOPE IT IS NOT REACHABLE!")

相关问题 更多 >