Administrator
2023-02-16 92cb2dd75ea37b64b174f42ddd0b5b17d6a4634a
trade/trade_gui.py
@@ -3,6 +3,7 @@
"""
import array
import logging
import threading
import time
import random
@@ -760,16 +761,23 @@
        # 获取可用的窗口
        win = cls.__get_available_win()
        if win is None:
            logger_buy_win_distibute.error(f"无可用窗口:{code}")
            raise Exception("窗口已经分配完毕,无可用窗口")
        # 保存窗口分配信息
        cls.__save_code_win(code, win)
        # 设置代码多试几次
        is_success = False
        for i in range(0, 3):
            THSGuiUtil.set_buy_window_code(cls.get_trade_win(win), code)
            time.sleep(0.5)
            code_name_win = cls.__get_code_name(win)
            if code_name == code_name_win:
                is_success = True
                break
        if is_success:
            logger_buy_win_distibute.info(f"新分配窗口成功:{code}-{win}")
        else:
            logger_buy_win_distibute.info(f"新分配窗口失败:{code}-{win}")
        return win
    # 删除代码窗口分配
@@ -793,6 +801,18 @@
            cls.__del_code_win(code)
            return None
        return win
    # 获取已分配的交易框信息
    @classmethod
    def get_distributed_code_wins(cls):
        key = "buywin_distribute-*"
        keys = cls.__get_redis().keys(key)
        results = []
        for k in keys:
            code = k.split("-")[-1]
            win = cls.__get_redis().get(k)
            results.append((code, win))
        return results
    # 获取代码名称
    @classmethod
@@ -846,8 +866,11 @@
                    if name_codes.get(code_name) != code:
                        cls.cancel_distribute_win_for_code(code)
                continue
            try:
            win = cls.distribute_win_for_code(code, gpcode_manager.get_code_name(code))
            print("分配的窗口:", win, THSGuiUtil.is_win_exist(win))
            except Exception as e:
                logging.exception(e)
class GUITest: