Administrator
2023-07-06 ed5df87f60fc9fe5693e90676a1bddc952e5301b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
"""
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()