SimpleXMLRPCServer 是单线程模式(多线程版本需要和ThreadingMixIn派生出新类),但是我就想使用单线程模式,使所有客户端排队进行RPC。
遇到的情况:同时并发过程中(单线程模式),一般前6-8个客户端的调用能完成,大于这个数的其他客户端约4秒后,报ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
从目前的线索看,似乎SimpleXMLRPCServer(单线程模式)下有某种最大连接数,是否有办法设置最大连接数作为突破方向?
改为多线程试试,参考
from SimpleXMLRPCServer import SimpleXMLRPCServer
from SocketServer import ThreadingMixIn
class ThreadXMLRPCServer(ThreadingMixIn, SimpleXMLRPCServer):pass
class MyObject:
def hello(self):
return "hello xmlprc"
obj = MyObject()
server = ThreadXMLRPCServer(("localhost", 8088), allow_none=True)
server.register_instance(obj)
print "Listening on port 8088"
server.serve_forever()
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632