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)
|