"""
|
GUI管理
|
"""
|
|
import multiprocessing
|
|
|
from trade.huaxin import trade_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 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)
|
|
#tradeServerProcess.start()
|
serverProcess.start()
|
jueJinTradeProcess.start()
|
# 将tradeServer作为主进程
|
createTradeServer()
|