Administrator
2023-09-18 92536a55945b017429c07f2d5e1f1ae9b010e5c5
日志超时记录
9个文件已修改
65 ■■■■■ 已修改文件
huaxin_client/l2_data_manager.py 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
huaxin_client/trade_client.py 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
l2/cancel_buy_strategy.py 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
log_module/async_log_util.py 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/huaxin_trade_api.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/huaxin_trade_data_update.py 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/trade_api_server.py 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/trade_huaxin.py 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
utils/data_export_util.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
huaxin_client/l2_data_manager.py
@@ -60,7 +60,6 @@
def add_l2_order_detail(data, istransaction=False):
    code = data["SecurityID"]
    # 异步日志记录
    async_log_util.huaxin_l2_log.info(logger_local_huaxin_l2_orderdetail, data)
    if code not in tmep_order_detail_queue_dict:
        tmep_order_detail_queue_dict[code] = queue.Queue()
    # 原来的格式
huaxin_client/trade_client.py
@@ -628,10 +628,10 @@
                              "insertTime": pOrderField.InsertTime, "insertDate": pOrderField.InsertDate,
                              "acceptTime": pOrderField.AcceptTime, "cancelTime": pOrderField.CancelTime,
                              "limitPrice": pOrderField.LimitPrice, "accountID": pOrderField.AccountID,
                              "turnover": pOrderField.Turnover,
                              "volume": pOrderField.VolumeTotalOriginal,
                              "volumeTraded": pOrderField.VolumeTraded, "orderStatus": pOrderField.OrderStatus,
                              "orderSubmitStatus": pOrderField.OrderSubmitStatus, "statusMsg": pOrderField.StatusMsg}
                              "orderRef": pOrderField.OrderRef, "turnover": pOrderField.Turnover,
                              "volume": pOrderField.VolumeTotalOriginal, "volumeTraded": pOrderField.VolumeTraded,
                              "orderStatus": pOrderField.OrderStatus, "orderSubmitStatus": pOrderField.OrderSubmitStatus,
                              "statusMsg": pOrderField.StatusMsg}
                self.call_back_thread_pool.submit(self.__data_callback, TYPE_ORDER, 0, order_data)
        except Exception as e:
            async_log_util.error(logger_local_huaxin_trade_debug, "OnRtnOrder 出错")
@@ -741,7 +741,7 @@
                     "insertTime": pOrderField.InsertTime, "insertDate": pOrderField.InsertDate,
                     "acceptTime": pOrderField.AcceptTime, "cancelTime": pOrderField.CancelTime,
                     "limitPrice": pOrderField.LimitPrice, "accountID": pOrderField.AccountID,
                     "turnover": pOrderField.Turnover,
                     "turnover": pOrderField.Turnover, "orderRef": pOrderField.OrderRef,
                     "volume": pOrderField.VolumeTotalOriginal,
                     "volumeTraded": pOrderField.VolumeTraded, "orderStatus": pOrderField.OrderStatus,
                     "orderSubmitStatus": pOrderField.OrderSubmitStatus, "statusMsg": pOrderField.StatusMsg})
l2/cancel_buy_strategy.py
@@ -777,8 +777,9 @@
        total_datas = local_today_datas.get(code)
        if total_datas:
            MIN_MONEYS = [300, 200, 100, 50]
            watch_indexes = set()
            MAX_COUNT = 5
            for min_money in MIN_MONEYS:
                watch_indexes = set()
                for i in range(end_index, start_index, -1):
                    # if i > len(total_datas):
                    #     continue
@@ -796,15 +797,16 @@
                                                                                                                  code))
                        if left_count > 0:
                            watch_indexes.add(i)
                            if len(watch_indexes) >= 5:
                            if len(watch_indexes) >= MAX_COUNT:
                                break
                    except Exception as e:
                        logger_l2_l_cancel.error(f"{code}: 范围: {start_index}-{end_index}  位置:{i}")
                        logger_l2_l_cancel.exception(e)
                if watch_indexes:
                    self.__set_watch_indexes(code, watch_indexes)
                    l2_log.l_cancel_debug(code, f"设置监听范围, 数据范围:{start_index}-{end_index} 监听范围-{watch_indexes}")
                if len(watch_indexes) >= MAX_COUNT:
                    break
            if watch_indexes:
                self.__set_watch_indexes(code, watch_indexes)
                l2_log.l_cancel_debug(code, f"设置监听范围, 数据范围:{start_index}-{end_index} 监听范围-{watch_indexes}")
    # 设置真实下单位置
    def set_real_place_order_index(self, code, index, buy_single_index=None):
log_module/async_log_util.py
@@ -48,35 +48,40 @@
l2_data_log = AsyncLogManager()
huaxin_l2_log = AsyncLogManager()
log_queue = queue.Queue()
def __add_log(logger, method, *args):
    log_queue.put_nowait((logger, time.time(), method, args))
def __add_log(logger, time_out_log, method, *args):
    start_time = time.time()
    log_queue.put_nowait((logger, start_time, method, args))
    if time_out_log:
        end_time = time.time()
        sub_time = end_time - start_time
        if sub_time > 0.01:
            # 记录日志保存慢的日志
            __add_log(logger_debug, False, f"保存到日志队列用时:{sub_time}s")
def debug(logger, *args):
    __add_log(logger, "debug", *args)
    __add_log(logger, True, "debug", *args)
def info(logger, *args):
    __add_log(logger, "info", *args)
    __add_log(logger, True, "info", *args)
def warning(logger, *args):
    __add_log(logger, "warning", *args)
    __add_log(logger, True, "warning", *args)
def error(logger, *args):
    __add_log(logger, "error", *args)
    __add_log(logger, True, "error", *args)
def exception(logger, *args):
    __add_log(logger, "exception", *args)
    __add_log(logger, True, "exception", *args)
# 运行同步日志
@@ -98,5 +103,5 @@
if __name__ == "__main__":
    # info(logger_debug, "*-{}", "test")
    info(logger_debug, "123123")
    info(logger_debug, "002375")
    run_sync()
trade/huaxin/huaxin_trade_api.py
@@ -255,7 +255,11 @@
        if not is_pipe:
            trade_cmd_callback(TradeRequest(_type, root_data, request_id))
        else:
            start_time = time.time()
            pipe_trade.send(json.dumps(root_data).encode("utf-8"))
            use_time = int((time.time() - start_time)*1000)
            if use_time > 10:
                async_log_util.info(hx_logger_trade_loop, f"发送耗时:request_id-{request_id} 耗时时间:{use_time}")
        if log_enable:
            async_log_util.info(hx_logger_trade_loop, "请求发送成功:request_id-{}", request_id)
    except BrokenPipeError as e:
trade/huaxin/huaxin_trade_data_update.py
@@ -46,6 +46,7 @@
                                        new_place_order_index = trade_huaxin.order_success(d['securityID'],
                                                                                           d['accountID'],
                                                                                           d['orderSysID'],
                                                                                           d['orderRef'],
                                                                                           d['insertTime'])
                                        if new_place_order_index:
                                            buy_single_index, buy_exec_index, compute_index, num, count, max_num_set, volume_rate = TradePointManager().get_buy_compute_start_data_cache(
trade/huaxin/trade_api_server.py
@@ -119,6 +119,7 @@
                                            trade_huaxin.order_success(resultJSON['securityId'],
                                                                       resultJSON['accountID'],
                                                                       resultJSON['orderSysID'],
                                                                       resultJSON['orderRef'],
                                                                       resultJSON['insertTime']
                                                                       )
                                            return_str = json.dumps({"code": 0})
trade/trade_huaxin.py
@@ -77,8 +77,11 @@
        raise Exception("下单失败,无返回")
def order_success(code, accountId, orderSysID, insertTime):
def order_success(code, accountId, orderSysID, orderRef, insertTime):
    # 加入系统订单号
    __TradeOrderIdManager.add_order_id(code, accountId, orderSysID)
    # 删除临时订单号
    __TradeOrderIdManager.remove_order_ref(code, orderRef)
    # 根据插入时间判断下单位置是否正确
    try:
        place_index = huaxin_delegate_postion_manager.get_place_order_position(code)
utils/data_export_util.py
@@ -20,6 +20,7 @@
    # 获取L2的数据
    local_today_datas = log_export.load_l2_from_log(date)
    datas = local_today_datas[code]
    datas = datas[-2000:]
    # 获取L2处理位置信息
    process_indexs = log_export.get_l2_process_position(code, date)
    trade_indexs = log_export.get_l2_trade_position(code, date)
@@ -206,11 +207,12 @@
    num_operate_map = {}
    l2.l2_data_util.load_num_operate_map(num_operate_map, code, datas)
    for progress in progresses:
        deal_big_money_manager.DealComputeProgressManager().set_trade_progress(code, progress, datas, num_operate_map[code])
        deal_big_money_manager.DealComputeProgressManager().set_trade_progress(code, progress, datas,
                                                                               num_operate_map[code])
if __name__ == "__main__":
    try:
        export_l2_excel("600615")
        export_l2_excel("002375")
    except Exception as e:
        logging.exception(e)