コード例 #1
0
ファイル: eventengine.py プロジェクト: oxmcvusd/quantdigger
    def __init__(self, name, event_protocol="tcp://127.0.0.1:5555",
		    register_protocol="tcp://127.0.0.1:5557"):
        EventEngine.__init__(self)
        self._name = name
        self._context = zmq.Context()  
        try:
            self._broadcast_event_socket = self._context.socket(zmq.PUB)  
            self._broadcast_event_socket.bind(event_protocol)  
            self._server_recv_event_socket = self._context.socket(zmq.PULL)
            self._server_recv_event_socket.bind(register_protocol)
            self._is_server = True
            log.info('Run ZMQEventEngine Server: %s' % self._name)
        except zmq.error.ZMQError:
            log.info('Run ZMQEventEngine client: %s' % self._name)
            self._is_server = False

        self._emit_event_socket = self._context.socket(zmq.PUSH)  
        self._emit_event_socket.connect(register_protocol)  
        self._client_recv_event_socket = self._context.socket(zmq.SUB)  
        self._client_recv_event_socket.connect(event_protocol)  

        self._thread = Thread(target=self._run)
        self._thread.daemon = True
        self._queue_engine = QueueEventEngine(self._name)
        time.sleep(1)
コード例 #2
0
    def __init__(self,
                 name,
                 event_protocol="tcp://127.0.0.1:5555",
                 register_protocol="tcp://127.0.0.1:5557"):
        EventEngine.__init__(self)
        self._name = name
        self._context = zmq.Context()
        try:
            self._broadcast_event_socket = self._context.socket(zmq.PUB)
            self._broadcast_event_socket.bind(event_protocol)
            self._server_recv_event_socket = self._context.socket(zmq.PULL)
            self._server_recv_event_socket.bind(register_protocol)
            self._is_server = True
            log.info('Run ZMQEventEngine Server: %s' % self._name)
        except zmq.error.ZMQError:
            log.info('Run ZMQEventEngine client: %s' % self._name)
            self._is_server = False

        self._emit_event_socket = self._context.socket(zmq.PUSH)
        self._emit_event_socket.connect(register_protocol)
        self._client_recv_event_socket = self._context.socket(zmq.SUB)
        self._client_recv_event_socket.connect(event_protocol)

        self._thrd = Thread(target=self._run)
        self._thrd.daemon = True
        self._queue_engine = QueueEventEngine(self._name)
        time.sleep(1)
コード例 #3
0
    def __init__(self):
        log.info("Init Shell..")
        self._engine = ZMQEventEngine('Shell')
        self._engine.start()
        self.gate = EventRPCClient('Shell', self._engine,
                                   WindowGate.SERVER_FOR_SHELL)

        self._backend = EventRPCClient('test_shell', self._engine,
                                       Backend.SERVER_FOR_SHELL)
コード例 #4
0
    def __init__(self):
        log.info("Init Backend..")
        self._dm = DataManager()
        self._engine = ZMQEventEngine('Backend')
        self._engine.start()

        self._shell_srv = EventRPCServer(self._engine, self.SERVER_FOR_SHELL)
        self._ui_srv = EventRPCServer(self._engine, self.SERVER_FOR_UI)
        self.register_functions(self._shell_srv)
        self.register_functions(self._ui_srv)
コード例 #5
0
ファイル: shell.py プロジェクト: cycmay/quantdigger
    def __init__(self):
        log.info("Init Shell..")
        self._engine = ZMQEventEngine('Shell')
        self._engine.start()
        self.gate = EventRPCClient('Shell',
                                  self._engine,
                                  WindowGate.SERVER_FOR_SHELL)

        self._backend = EventRPCClient('test_shell',
                                      self._engine,
                                      Backend.SERVER_FOR_SHELL)
コード例 #6
0
ファイル: backend.py プロジェクト: oxmcvusd/quantdigger
    def __init__(self):
        log.info("Init Backend..")
        self._engine = ZMQEventEngine('Backend')
        self._engine.start()

        self._shell_srv = EventRPCServer(self._engine, 
                                self.SERVER_FOR_SHELL)
        self._ui_srv = EventRPCServer(self._engine, 
                                self.SERVER_FOR_UI)
        self.register_functions(self._shell_srv)
        self.register_functions(self._ui_srv)
コード例 #7
0
ファイル: rpc.py プロジェクト: QuantFans/quantdigger
 def __init__(self, event_engine, service, event_client=None, event_server=None):
     super(EventRPCServer, self).__init__()
     self._routes = {}
     self._routes_lock = Lock()
     # server监听的client事件
     self.EVENT_FROM_CLIENT = event_client if event_client else "EVENT_FROM_%s_CLIENT" % service.upper()
     # client监听的server事件
     self.EVENT_FROM_SERVER = event_server if event_server else "EVENT_FROM_%s_SERVER" % service.upper()
     self._event_engine = event_engine
     self._event_engine.register(self.EVENT_FROM_CLIENT, self._process_request)
     log.info("[Create RPCServer  %s]" % self.EVENT_FROM_CLIENT)
     self._name = service.upper()
コード例 #8
0
 def __init__(self,
              event_engine,
              service,
              event_client=None,
              event_server=None):
     super(EventRPCServer, self).__init__()
     self._routes = {}
     self._routes_lock = Lock()
     # server监听的client事件
     self.EVENT_FROM_CLIENT = event_client if event_client else "EVENT_FROM_%s_CLIENT" % service.upper(
     )
     # client监听的server事件
     self.EVENT_FROM_SERVER = event_server if event_server else "EVENT_FROM_%s_SERVER" % service.upper(
     )
     self._event_engine = event_engine
     self._event_engine.register(self.EVENT_FROM_CLIENT,
                                 self._process_request)
     log.info("[Create RPCServer  %s]" % self.EVENT_FROM_CLIENT)
     self._name = service.upper()
コード例 #9
0
ファイル: rpc.py プロジェクト: QuantFans/quantdigger
 def _process_apiback(self, event):
     assert(event.route == self.EVENT_FROM_SERVER)
     self._timeout = 0
     rid = event.args['rid']
     try:
         with self._handlers_lock:
             handler = self._handlers[rid]
     except KeyError:
         log.info('[RPCClient._process_apiback] 放弃超时任务的返回结果')
     else:
         try:
             if handler:
                 # 异步
                 handler(event.args['ret'])
             else:
                 # 同步
                 self._sync_ret = event.args['ret']
                 self._notify_server_data()
         except Exception as e:
             log.error(e)
         log.debug("[RPCClient._process_apiback] 删除已经完成的任务 rid; %s" % rid)
         with self._handlers_lock:
             del self._handlers[rid]
コード例 #10
0
 def _process_apiback(self, event):
     assert (event.route == self.EVENT_FROM_SERVER)
     self._timeout = 0
     rid = event.args['rid']
     try:
         with self._handlers_lock:
             handler = self._handlers[rid]
     except KeyError:
         log.info('[RPCClient._process_apiback] 放弃超时任务的返回结果')
     else:
         try:
             if handler:
                 # 异步
                 handler(event.args['ret'])
             else:
                 # 同步
                 self._sync_ret = event.args['ret']
                 self._notify_server_data()
         except Exception as e:
             log.error(e)
         log.debug("[RPCClient._process_apiback] 删除已经完成的任务 rid; %s" % rid)
         with self._handlers_lock:
             del self._handlers[rid]
コード例 #11
0
 def stop(self):
     log.info('Backend stopped.')
     self._engine.stop()
コード例 #12
0
ファイル: eventengine.py プロジェクト: oxmcvusd/quantdigger
 def start(self):
     log.info('start timer')
     self._timer_active = True
     self._timer.start()
コード例 #13
0
ファイル: backend.py プロジェクト: cycmay/quantdigger
 def stop(self):
     log.info('Backend stopped.')
     self._engine.stop()
コード例 #14
0
 def start(self):
     log.info('start timer')
     self._timer_active = True
     self._timer.start()