From fb47d36048e94b9a506d5c153e3dd19a01e37df1 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期一, 30 十月 2023 16:30:27 +0800 Subject: [PATCH] bug修复 --- gui.py | 95 +++++++++++++++++++++++------------------------ 1 files changed, 47 insertions(+), 48 deletions(-) diff --git a/gui.py b/gui.py index 9fe9591..af2c0b4 100644 --- a/gui.py +++ b/gui.py @@ -9,17 +9,15 @@ import win32gui -import constant -import data_export_util +from db.redis_manager_delegate import RedisUtils +from utils import data_export_util import multiprocessing -import log -from db import mysql_data, redis_manager +from log_module import log, log_export +from db import mysql_data_delegate as mysql_data, redis_manager_delegate as redis_manager import server -import settings -from juejin import JueJinManager -from l2_code_operate import L2CodeOperate -from trade import l2_trade_util +from config import settings +from ths.l2_code_operate import L2CodeOperate from trade.l2_trade_factor import L2TradeFactorUtil from ocr import ocr_server from third_data import data_server, kpl_data_manager, kpl_util @@ -67,8 +65,6 @@ t1.setDaemon(True) t1.start() - - laddr = "", 9001 tcpserver = MyThreadingTCPServer(laddr, MyBaseRequestHandle, pipe_juejin=pipe_juejin) # 娉ㄦ剰锛氬弬鏁版槸MyBaseRequestHandle # tcpserver.handle_request() # 鍙帴鍙椾竴涓鎴风杩炴帴 @@ -80,13 +76,13 @@ tcpserver = ocr_server.run("", 9002) tcpserver.serve_forever() + def createDataServer(): print("create OCRServer") tcpserver = data_server.run("", 9004) tcpserver.serve_forever() -def startJueJin(pipe): - juejin.JueJinManager(pipe).start() + class GUI: @@ -96,9 +92,8 @@ gs_gui_pipe, gs_server_pipe = multiprocessing.Pipe() self.serverProcess = multiprocessing.Process(target=createServer, args=(p1, gs_server_pipe,)) - self.jueJinProcess = multiprocessing.Process(target=startJueJin, args=(p2,)) + self.jueJinTradeProcess = multiprocessing.Process(target=trade_juejin.run) self.ocrServerProcess = multiprocessing.Process(target=createOCRServer) - self.p1 = p1 self.p2 = p2 @@ -130,10 +125,9 @@ time.sleep(0.1) def run(self): - # TODO - self.jueJinProcess.start() self.serverProcess.start() self.ocrServerProcess.start() + self.jueJinTradeProcess.start() L2CodeOperate.get_instance() # 瀹㈡埛绔槦鍒楁搷浣� @@ -163,15 +157,18 @@ text.delete('1.0', END) # 楠岃瘉redis + redis = redis_manager.RedisManager().getRedis() try: - redis = redis_manager.RedisManager().getRedis() - redis.set("test", "1") - redis.delete("test") + + RedisUtils.set( redis,"test", "1",auto_free=False) + RedisUtils.delete(redis, "test", auto_free=False) text.insert(END, "redis杩炴帴鎴愬姛锛乗n") except: error = "redis杩炴帴澶辫触...\n" text.insert(END, error) _set_error_color(text, 1, error) + finally: + RedisUtils.realse(redis) # 楠岃瘉mongodb try: counts = mysql_data.Mysqldb().select_one("select count(*) from clients") @@ -226,12 +223,11 @@ # 缁樺埗寮�鐩樺墠鐨勬暟鎹噯澶囨儏鍐� def __draw_pre_data_check(self, frame): def refresh_close_price_data(): - redis = redis_manager.RedisManager(0).getRedis() - count = len(redis.keys("price-pre-*")) + count = len(RedisUtils.keys(redis_manager.RedisManager(0).getRedis(), "price-pre-*")) sv_num.set("鑾峰彇鍒版敹鐩樹环鏁伴噺锛歿}".format(count)) def re_get_close_price(): - juejin.re_set_price_pres(gpcode_manager.get_gp_list()) + inited_data.re_set_price_pres(gpcode_manager.get_gp_list()) def get_limit_up_codes_win(): width = 500 @@ -304,6 +300,7 @@ # table.model.setValueAt(data["apply_time"], index, 2) index += 1 table.redraw() + # 鍒锋柊寮�鐩樺暒鏁版嵁 def refresh_kpl_data(): kpl_data_manager.KPLDataManager().get_data(kpl_util.KPLDataType.LIMIT_UP) @@ -311,7 +308,6 @@ kpl_data_manager.KPLDataManager().get_data(kpl_util.KPLDataType.BEST_FENG_KOU) kpl_data_manager.KPLDataManager().get_data(kpl_util.KPLDataType.FENG_KOU) kpl_data_manager.KPLDataManager().get_data(kpl_util.KPLDataType.FENG_XIANG) - start_y = 225 btn = FlatButton(frame, text="鍒锋柊鏀剁洏浠�", command=refresh_close_price_data) @@ -323,7 +319,7 @@ btn = FlatButton(frame, text="閲嶆柊鑾峰彇鏀剁洏浠�", command=re_get_close_price) btn.place(x=80, y=start_y) - kpl_data = Label(text="娑ㄥ仠锛歕n鐐告澘锛歕n鏈�寮猴細\n椋庡悜锛歕n椋庡彛锛�",bg="#DDDDDD",fg="#666666") + kpl_data = Label(text="娑ㄥ仠锛歕n鐐告澘锛歕n鏈�寮猴細\n椋庡悜锛歕n椋庡彛锛�", bg="#DDDDDD", fg="#666666") kpl_data.place(x=190, y=start_y) trade_win_datas = [] @@ -347,7 +343,7 @@ try: if tool.trade_time_sub(tool.get_now_time_str(), "09:30:00") > 0: raise Exception("鍙兘9:30涔嬪墠閲嶆柊鍒嗛厤绐楀彛") - datas = JueJinManager.get_codes_limit_rate(gpcode_manager.get_gp_list()) + datas = HistoryKDatasUtils.get_codes_limit_rate(gpcode_manager.get_gp_list()) matrix = numpy.array(datas) codes = matrix[:, 0].tolist() trade_gui.re_distribute_buy_win(codes) @@ -377,7 +373,7 @@ cl_win.configure(text="寮傚父:{}".format(str(e)), foreground="#FF7F27") try: - juejin_length = JueJinManager.get_listen_codes_lenth() + juejin_length = 0 codes_length = len(gpcode_manager.get_gp_list()) cl_codes.configure(text="{}/{}".format(juejin_length, codes_length), foreground="#008000") except Exception as e: @@ -606,7 +602,7 @@ win.mainloop() def init(): - juejin.everyday_init() + inited_data.everyday_init() def set_accept_l2(): settings.set_accept_l2(accept_l2.get()) @@ -634,7 +630,7 @@ width = 800 height = 360 frame = Frame(root, {"height": height, "width": width, "bg": "#DDDDDD"}) - trade_info= "" + trade_info = "" for_color = "#008000" if constant.TEST: trade_info += "娴嬭瘯鐜" @@ -648,7 +644,7 @@ trade_info += "鍒濆绂佹浜ゆ槗" for_color = "#FF7F27" - cl = Label(frame, text=f"{trade_info}", bg="#DDDDDD",foreground=f"{for_color}") + cl = Label(frame, text=f"{trade_info}", bg="#DDDDDD", foreground=f"{for_color}") cl.place(x=5, y=5) accept_l2 = IntVar() @@ -684,10 +680,10 @@ menu.add_command(label="鐜妫�娴�", command=check_env) menu.add_command(label="鍚岃姳椤烘祴閫�", command=ths_test_speed) - device_index =0 + device_index = 0 for key in self.l2_codes: device_index += 1 - client_lb = Label(frame, text="璁惧:{} ID:{}".format(device_index,key), background="#DDDDDD") + client_lb = Label(frame, text="璁惧:{} ID:{}".format(device_index, key), background="#DDDDDD") client_lb.place(x=38, y=40 + l2_client_count * 30) btn = FlatButton(frame, text="妫�娴�", command=key) btn.bind('<Button-3>', lambda event: pop_menu(event)) @@ -727,7 +723,7 @@ time.sleep(1) def refresh_data(): - money = trade_manager.get_available_money() + money = trade_manager.AccountAvailableMoneyManager().get_available_money() if money is not None: sv_trade_money.set(money) else: @@ -766,16 +762,17 @@ index = 0 for data in datas: table_trade.model.addRow() - table_trade.model.setValueAt(data["code"], index, 0) - table_trade.model.setValueAt(data["time"], index, 1) - table_trade.model.setValueAt(data["num"], index, 2) - table_trade.model.setValueAt(data["price"], index, 3) - table_trade.model.setValueAt(data["money"], index, 4) - table_trade.model.setValueAt(data["trade_num"], index, 5) if int(data["type"]) > 0: - table_trade.model.setValueAt("鍗栧嚭", index, 6) + table_trade.model.setValueAt("鍗栧嚭", index, 0) else: - table_trade.model.setValueAt("涔板叆", index, 6) + table_trade.model.setValueAt("涔板叆", index, 0) + table_trade.model.setValueAt(data["code"], index, 1) + table_trade.model.setValueAt(data["time"], index, 2) + table_trade.model.setValueAt(data["num"], index, 3) + table_trade.model.setValueAt(data["price"], index, 4) + table_trade.model.setValueAt(data["money"], index, 5) + table_trade.model.setValueAt(data["trade_num"], index, 6) + index += 1 table_trade.redraw() @@ -846,12 +843,12 @@ cl.place(x=width - 70, y=30) trade_datas = {} - trade_datas["row{}".format(0)] = {'璇佸埜浠g爜': '', '鎴愪氦鏃堕棿': '', '鎴愪氦鏁伴噺': '', '鎴愪氦鍧囦环': '', '鎴愪氦閲戦': '', - '鍚堝悓缂栧彿': '', '鎿嶄綔': ''} + trade_datas["row{}".format(0)] = {'鏂瑰悜': '', '璇佸埜浠g爜': '', '鎴愪氦鏃堕棿': '', '鎴愪氦鏁伴噺': '', '鎴愪氦鍧囦环': '', '鎴愪氦閲戦': '', + '鍚堝悓缂栧彿': ''} table_frame = Frame(frame, {"height": table_height, "width": table_width, "bg": "#DDDDDD"}) table_frame.place(x=width / 2, y=52) - table_trade = create_table(table_frame, trade_datas, 90) + table_trade = create_table(table_frame, trade_datas, 70) table_trade.show() frame.grid(row=2, column=1, padx=5, pady=5, rowspan=2) @@ -870,7 +867,7 @@ if len(account.strip()) < 1 or len(sid.strip()) < 1 or len(token.strip()) < 1: showinfo('鎻愮ず', "鏁版嵁涓嶅畬鏁�") return - juejin.setAccountInfo(account, sid, token) + inited_data.setAccountInfo(account, sid, token) showinfo('鎻愮ず', "璁剧疆鎴愬姛") # 璁剧疆鎺橀噾淇℃伅 @@ -902,7 +899,7 @@ frame.grid(row=0, column=2, pady=5, padx=5) # 璁剧疆鍙傛暟 - account, sid, token = juejin.getAccountInfo() + account, sid, token = inited_data.getAccountInfo() account_var.set(account) sid_var.set(sid) token_var.set(token) @@ -947,10 +944,10 @@ def export_l2_data_origin(code): redis = redis_manager.RedisManager(1).getRedis() - keys = redis.keys("big_data-{}-*".format(code)) try: + keys = RedisUtils.keys(redis, "big_data-{}-*".format(code), auto_free=False) for k in keys: - datas = redis.get(k) + datas = redis.get(k, auto_free=False) datas = json.loads(datas) _t = k.split("-")[2] k = time.strftime("%Y_%m_%d_%H_%M_%S_", time.localtime(float(_t) / 1000)) @@ -958,6 +955,8 @@ data_export_util.export_l2_data_origin(code, datas, k) except Exception as e1: showerror("瀵煎嚭澶辫触", str(e1)) + finally: + RedisUtils.realse(redis) showinfo("鎻愮ず", "瀵煎嚭瀹屾垚") @@ -1016,7 +1015,7 @@ btn = FlatButton(frame, text="鑾峰彇m鍊�", command=lambda: compute_m(code.get())) btn.place(x=10, y=130) - btn = FlatButton(frame, text="瀵煎嚭浜ゆ槗鏃ュ織", command=lambda: log.export_l2_log(code.get())) + btn = FlatButton(frame, text="瀵煎嚭浜ゆ槗鏃ュ織", command=lambda: log_export.export_l2_log(code.get())) btn.place(x=80, y=130) btn = FlatButton(frame, text="娓呯┖l2鏁版嵁", command=lambda: clear_l2(code.get())) -- Gitblit v1.8.0