0

服务器部分——Core,负责模块的注册和模块之间的交互。核心作为 ThreadedServer 运行。CoreService 提供注册模块。注册时,我保留了一个连接列表,然后使用它们。模块调用核心函数,它应该调用另一个模块。但是使用连接列表不起作用,性能进入无限循环。

class CoreService(rpyc.Service):
    __modules = {}
    def exposed_register_module(self, module_name):
        if module_name in self.__modules:
            return False
        self.__modules[module_name] = self._conn
        return True

    def exposed_execute_query_module(self, module_name, attribute_name, args):
        # TTTTTTTTTTHHHHHHHHHIIIIIIIISSSSSSSSSSSSSS
        if module_name in self.__modules:
             self.__modules[module_name].root
        # return None

运行测试

当您运行测试时,我进入一个循环,该循环被组合键打断并获得以下输出:

^CTraceback(最近一次通话最后):
__getattr__ 中的文件“/home/kpv/perseus/control-lib/perseus_control_lib/module.py”,第 67 行
        返回 self.__core_connector.root.execute_query_module(self.__proxy_module_name, name, args)
__call__ 中的文件“/usr/local/lib/python2.7/dist-packages/rpyc/core/netref.py”,第 196 行
        返回同步请求(_self,consts.HANDLE_CALL,args,kwargs)
文件“/usr/local/lib/python2.7/dist-packages/rpyc/core/netref.py”,第 71 行,在 syncreq
        返回 conn.sync_request(handler, oid, *args)
文件“/usr/local/lib/python2.7/dist-packages/rpyc/core/protocol.py”,第 438 行,在 sync_request
        自助服务(0.1)
文件“/usr/local/lib/python2.7/dist-packages/rpyc/core/protocol.py”,第 387 行,在服务中
        数据 = self._recv(超时,wait_for_lock = True)
_recv 中的文件“/usr/local/lib/python2.7/dist-packages/rpyc/core/protocol.py”,第 344 行
        如果 self._channel.poll(超时):
投票中的文件“/usr/local/lib/python2.7/dist-packages/rpyc/core/channel.py”,第 43 行
        返回 self.stream.poll(超时)
投票中的文件“/usr/local/lib/python2.7/dist-packages/rpyc/core/stream.py”,第 41 行
        rl,_,_ = 选择([self],[],[],超时)
    键盘中断
4

0 回答 0