Administrator
2023-08-02 caee9ee5f819c9b86fa8e2e0fd9d77a2ba79dc7f
redis缓存加入内存缓存
2个文件已修改
27 ■■■■ 已修改文件
l2/huaxin/huaxin_target_codes_manager.py 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
l2/l2_data_manager_new.py 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
l2/huaxin/huaxin_target_codes_manager.py
@@ -3,6 +3,7 @@
"""
import json
import logging
import queue
import socket
import time
@@ -14,12 +15,14 @@
from utils import tool, global_util, socket_util
redisManager = redis_manager.RedisManager(4)
l2_codes_queue = queue.Queue()
# 华鑫Level2订阅代码管理
class HuaXinL2SubscriptCodesManager:
    __L2_CODE_KEY = "huaxin_l2_code_list"
    __SUBSCRIPT_KEY = "huaxin_subscript_codes"
    __subscript_codes = []
    @classmethod
    def __get_redis(cls):
@@ -27,31 +30,29 @@
    @classmethod
    def clear(cls):
        cls.__get_redis().delete(cls.__L2_CODE_KEY)
        # cls.__get_redis().delete(cls.__L2_CODE_KEY)
        l2_codes_queue.clear()
    @classmethod
    def push(cls, datas):
        cls.__get_redis().lpush(cls.__L2_CODE_KEY, json.dumps((int(time.time()), datas)))
        l2_codes_queue.put_nowait((int(time.time()), datas))
        # cls.__get_redis().lpush(cls.__L2_CODE_KEY, json.dumps())
    @classmethod
    def pop(cls):
        val = cls.__get_redis().lpop(cls.__L2_CODE_KEY)
        if val:
            return json.loads(val)
        return val
        return l2_codes_queue.get()
        # val = cls.__get_redis().lpop(cls.__L2_CODE_KEY)
    # 设置订阅代码
    @classmethod
    def save_subscript_codes(cls, codes):
        cls.__get_redis().setex(cls.__SUBSCRIPT_KEY, tool.get_expire(), json.dumps(codes))
        cls.__subscript_codes = codes
        # cls.__get_redis().setex(cls.__SUBSCRIPT_KEY, tool.get_expire(), json.dumps(codes))
    # 获取订阅的代码
    @classmethod
    def get_subscript_codes(cls):
        val = cls.__get_redis().get(cls.__SUBSCRIPT_KEY)
        if not val:
            return []
        return json.loads(val)
        return cls.__subscript_codes
# 根据华鑫L2选出目标代码
l2/l2_data_manager_new.py
@@ -804,9 +804,7 @@
                for i in range(trade_index + 1, total_data[-1]["index"] + 1):
                    if L2DataUtil.is_limit_up_price_buy(total_data[i]["val"]):
                        left_count = l2_data_source_util.L2DataSourceUtils.get_limit_up_buy_no_canceled_count(code,
                                                                                                              total_data[
                                                                                                                  i][
                                                                                                                  "index"],
                                                                                                              total_data[i]["index"],
                                                                                                              total_data,
                                                                                                              num_operate_map)
                        if left_count > 0: