import http import json import logging import socketserver import time from http.server import BaseHTTPRequestHandler import dask from code_attribute.gpcode_manager import BlackListCodeManager from l2.l2_transaction_data_manager import HuaXinBuyOrderManager from log_module.log import logger_system, logger_debug, logger_kpl_limit_up, logger_request_api from third_data.custom_block_in_money_manager import CodeInMoneyManager from third_data.kpl_data_constant import LimitUpCodesBlockRecordManager, LimitUpDataConstant from third_data.kpl_limit_up_data_manager import LatestLimitUpBlockManager, CodeLimitUpSequenceManager from third_data.third_blocks_manager import BlockMapManager from trade.buy_radical.block_special_codes_manager import BlockSpecialCodesManager from trade.buy_strategy import OpenLimitUpGoodBlocksBuyStrategy from trade.buy_radical.radical_buy_data_manager import RadicalBuyBlockManager from utils import global_util, tool, data_export_util from code_attribute import gpcode_manager from log_module import log_analyse, log_export, async_log_util import urllib.parse as urlparse from urllib.parse import parse_qs from output import code_info_output, limit_up_data_filter, output_util, kp_client_msg_manager from trade import bidding_money_manager, trade_manager, l2_trade_util, trade_record_log_util, trade_constant, \ trade_data_manager import concurrent.futures # 禁用http.server的日志输出 logger = logging.getLogger("http.server") logger.setLevel(logging.CRITICAL) class DataServer(BaseHTTPRequestHandler): # 禁用日志输出 def log_message(self, format, *args): pass def do_GET(self): path = self.path url = urlparse.urlparse(path) async_log_util.info(logger_request_api, f"开始请求{tool.get_thread_id()}-{url}") response_data = "" if url.path == "/get_block_codes_money": ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()]) block = ps_dict['block'] try: pass response_data = json.dumps({"code": 0, "data": data}) except Exception as e: logger_debug.exception(e) logging.exception(e) self.send_response(200) # 发给请求客户端的响应数据 self.send_header('Content-type', 'application/json') self.end_headers() self.wfile.write(response_data.encode()) class ThreadedHTTPServer(socketserver.ThreadingMixIn, http.server.HTTPServer): pass def run(addr, port): handler = DataServer try: httpd = ThreadedHTTPServer((addr, port), handler) print("HTTP server is at: http://%s:%d/" % (addr, port)) httpd.serve_forever() except Exception as e: logger_system.exception(e) logger_system.error(f"端口服务器:{port} 启动失败") if __name__ == "__main__": run("", 9004)