0

我正在使用 python 并使用 Pyro4 编写一些连接到远程对象的东西当运行一些单元测试(使用 pyunit)时,我发现我不能运行超过 9 个测试或者测试会卡住了,就挂在那里。

我现在已经设法通过使用 Pyro4.Proxy(PYRONAME:name) 作为 pyroObject 来解决这个问题:用对象做一些事情......

而在我在测试设置中创建对象之前: def setUp(self): self.pyroObject = Pyro4.Proxy(PYRONAME:name)

然后在测试中使用 self.pyroObject

有谁知道为什么这解决了这个问题?谢谢

4

1 回答 1

0

当您不清理代理对象时,它们会保持与 pyro 守护进程的实时连接。默认情况下,守护进程接受 16 个并发连接。

如果您使用 with.. as... 语法,则在使用完代理后,您将彻底关闭代理,这会释放守护进程中的连接,使其可用于新代理。

您可以通过配置增加 Pyro 的线程池大小来增加 16 的数量。或者,您也许可以使用多路复用服务器类型而不是默认的线程服务器类型。

于 2015-02-19T19:40:41.737 回答