Beispiel #1
0
 def _create(self):
     START = 5
     STEP = 5
     MAX = 300
     times = START
     self.client = RpcClient(False)
     self.client.add_client(REMOTE, ("localhost", self.port), None,
                            self._rpc_disconn, "", False)
     self.client.register_all(self.interface)
     self.client.start_client(REMOTE)
     while True:
         if times < MAX:
             times += STEP
         try:
             terminal = self.client.get_terminal(REMOTE)
             future = terminal.register(self.name)
             if future.get_result(1) == "success":
                 return terminal
         except Exception, e:
             LOG.debug(e.message)
         time.sleep(times)
 def _create(self):
     START = 5
     STEP = 5
     MAX = 300
     times = START
     self.client = RpcClient(False)
     self.client.add_client(REMOTE, ("localhost", self.port), None,
                            self._rpc_disconn, "", False)
     self.client.register_all(self.interface)
     self.client.start_client(REMOTE)
     while True:
         if times < MAX:
             times += STEP
         try:
             terminal = self.client.get_terminal(REMOTE)
             future = terminal.register(self.name)
             if future.get_result(1) == "success":
                 return terminal
         except Exception, e:
             LOG.debug(e.message)
         time.sleep(times)
Beispiel #3
0
class BusClientFactory():
    def __init__(self):
        self.port = 0
        self.interface = None
        self.name = None
        self.client = None
        self.executor = ThreadPoolExecutor(max_workers=1)

    def setPort(self, port):
        '''
        设置该client使用的端口号,不设置则会分配一个随机端口号
        :param port:
        :return:
        '''
        self.port = port

    def setInterface(self, interface):
        '''
        设置该client所能提供的服务
        :param interface:
        :return:
        '''
        self.interface = interface

    def setName(self, name):
        '''
        设置该client的名称
        :param interface:
        :return:
        '''
        self.name = name

    def createClient(self, try_times=60):
        '''
        生成一个client实例 ,失败时重连try_time次,重连间隔一秒
        :return:
        '''
        self.executor.submit(self._create)

    def _create(self):
        START = 5
        STEP = 5
        MAX = 300
        times = START
        self.client = RpcClient(False)
        self.client.add_client(REMOTE, ("localhost", self.port), None,
                               self._rpc_disconn, "", False)
        self.client.register_all(self.interface)
        self.client.start_client(REMOTE)
        while True:
            if times < MAX:
                times += STEP
            try:
                terminal = self.client.get_terminal(REMOTE)
                future = terminal.register(self.name)
                if future.get_result(1) == "success":
                    return terminal
            except Exception, e:
                LOG.debug(e.message)
            time.sleep(times)
        return None
class BusClientFactory():
    def __init__(self):
        self.port = 0
        self.interface = None
        self.name = None
        self.client = None
        self.executor = ThreadPoolExecutor(max_workers=1)

    def setPort(self, port):
        '''
        设置该client使用的端口号,不设置则会分配一个随机端口号
        :param port:
        :return:
        '''
        self.port = port

    def setInterface(self, interface):
        '''
        设置该client所能提供的服务
        :param interface:
        :return:
        '''
        self.interface = interface

    def setName(self, name):
        '''
        设置该client的名称
        :param interface:
        :return:
        '''
        self.name = name

    def createClient(self, try_times=60):
        '''
        生成一个client实例 ,失败时重连try_time次,重连间隔一秒
        :return:
        '''
        self.executor.submit(self._create)

    def _create(self):
        START = 5
        STEP = 5
        MAX = 300
        times = START
        self.client = RpcClient(False)
        self.client.add_client(REMOTE, ("localhost", self.port), None,
                               self._rpc_disconn, "", False)
        self.client.register_all(self.interface)
        self.client.start_client(REMOTE)
        while True:
            if times < MAX:
                times += STEP
            try:
                terminal = self.client.get_terminal(REMOTE)
                future = terminal.register(self.name)
                if future.get_result(1) == "success":
                    return terminal
            except Exception, e:
                LOG.debug(e.message)
            time.sleep(times)
        return None