当它的大小超过某个阈值时,我无法从 Pyro4 服务器(版本 4.39,serializer=pickle)取回一个简单的 numpy 数组。服务器处理请求并回复,但客户端保持挂起
代码如下:
服务器代码:
import numpy as np, Pyro4
class U(object):
def __init__(self):
self.Data = np.arange(10000000).reshape(200,50000)
print self.Data.shape
def get(self,name):
print '%s Requested' % name
return self.Data
def run():
Uni = U()
daemon = Pyro4.Daemon(host='localhost')
ns = Pyro4.locateNS()
uri = daemon.register(Uni)
ns.register("test",uri)
print 'Up and waiting ...'
daemon.requestLoop()
if __name__ == '__main__':
run()
客户代码:
import Pyro4
ns = Pyro4.locateNS()
uri = ns.lookup('test')
U=Pyro4.Proxy(uri)
Data = U.get('Data')
服务器输出:(200, 50000) Up and waiting ... 数据请求
所以看起来 Pyro 服务器处理来自客户端的请求并返回数据,但客户端永远不会得到它并且无限期地挂起等待接收消息。
PS:-相同的代码适用于较小的数组(200,5000)
有谁知道可能是什么问题?
非常感谢您的帮助,