""" GUI管理 """ import multiprocessing from trade.huaxin import trade_server from ocr import ocr_server from third_data import data_server from server import * import l2.l2_data_util def __read_server_pipe(pipe): if pipe: while True: value = pipe.recv() if value is not None: value = json.loads(value) if value.get("type") == "clear_l2": code = value["data"]["code"] print("清除l2数据", code) if len(code) != 6: continue l2_data_manager.clear_l2_data(code) # 删除level2的数据 if l2.l2_data_util.local_today_datas and code in l2.l2_data_util.local_today_datas: l2.l2_data_util.local_today_datas.pop(code) if l2.l2_data_util.local_latest_datas and code in l2.l2_data_util.local_latest_datas: l2.l2_data_util.local_latest_datas.pop(code) time.sleep(0.1) # 交易服务 def createTradeServer(): print("create TradeServer") # 初始化参数 global_data_loader.init() t1 = threading.Thread(target=createDataServer) # 后台运行 t1.setDaemon(True) t1.start() trade_server.run() # 主服务 def createServer(pipe_juejin, pipe_gui): print("create Server") t1 = threading.Thread(target=lambda: __read_server_pipe(pipe_gui)) # 后台运行 t1.setDaemon(True) t1.start() laddr = "", 9001 tcpserver = MyThreadingTCPServer(laddr, MyBaseRequestHandle, pipe_juejin=pipe_juejin) # 注意:参数是MyBaseRequestHandle # tcpserver.handle_request() # 只接受一个客户端连接 tcpserver.serve_forever() # 永久循环执行,可以接受多个客户端连接 # 识别服务 def createOCRServer(): print("create OCRServer") tcpserver = ocr_server.run("", 9002) tcpserver.serve_forever() def createDataServer(): print("create DataServer") tcpserver = data_server.run("", 9004) tcpserver.serve_forever() if __name__ == '__main__': #tradeServerProcess = multiprocessing.Process(target=createTradeServer) serverProcess = multiprocessing.Process(target=createServer, args=(None, None,)) jueJinTradeProcess = multiprocessing.Process(target=trade_juejin.run) ocrServerProcess = multiprocessing.Process(target=createOCRServer) #tradeServerProcess.start() serverProcess.start() ocrServerProcess.start() jueJinTradeProcess.start() # 将tradeServer作为主进程 createTradeServer()