gpt4 book ai didi

python - 我怎样才能进行同步rpc调用

转载 作者:太空狗 更新时间:2023-10-30 02:35:46 24 4
gpt4 key购买 nike

我正在构建一个程序,该程序有一个在本地使用的类,但我希望通过网络以相同的方式使用相同的类。这意味着我需要能够对其任何公共(public)方法进行同步调用。该类读取和写入文件,所以我认为 XML-RPC 的开销太大。我使用 twisted 中的示例创建了一个基本的 rpc 客户端/服务器,但我在使用客户端时遇到了问题。

c = ClientCreator(reactor, Greeter)
c.connectTCP(self.host, self.port).addCallback(request)
reactor.run()

这适用于单个调用,当接收到数据时我正在调用 reactor.stop(),但如果我进行更多调用, react 堆将不会重新启动。我应该为此使用其他东西吗?也许是不同的扭曲模块或其他框架?

(我没有包括协议(protocol)如何工作的细节,因为要点是我只能从中得到一个调用。)

附录和说明:

我分享了一个谷歌文档,其中包含我正在做的事情的注释。 http://docs.google.com/Doc?id=ddv9rsfd_37ftshgpgz

我写了一个使用 fuse 的版本,可以将多个本地文件夹组合到 fuse 挂载点。文件访问已经在一个类中处理,所以我希望有服务器可以让我对同一类进行网络访问。继续搜索后,我怀疑 pyro ( http://pyro.sourceforge.net/ ) 可能是我真正要找的东西(仅基于现在阅读他们的主页),但我愿意接受任何建议。

我可以通过使用 nfs 挂载并将其与我的本地文件夹组合来实现类似的结果,但我希望所有对等方都可以访问相同的组合文件系统,因此这将需要每台计算机都成为一个 nfs 服务器nfs 安装的数量等于网络中计算机的数量。

结论:我决定使用 rpyc,因为它正是我想要的。保留类实例的服务器,我可以像在本地一样对其进行操作。如果有人感兴趣,我会将我的项目放在 Launchpad ( http://launchpad.net/dstorage ) 上。

最佳答案

如果您正在考虑 Pyro,请查看 RPyC首先,重新考虑 XML-RPC。

关于 Twisted:尝试让 react 器保持运行而不是停止它,并且每次都只是 ClientCreator(...).connectTCP(...)

如果您在协议(protocol)中self.transport.loseConnection(),您将不会留下打开的连接。

关于python - 我怎样才能进行同步rpc调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/281922/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com