| | |
| | | |
| | | |
| | | class CodesNameManager: |
| | | __db = 0 |
| | | redisManager = redis_manager.RedisManager(0) |
| | | __gp_list_names_first_cache = [] |
| | | |
| | |
| | | # 设置首板代码名称 |
| | | @classmethod |
| | | def set_first_code_names(cls, datas): |
| | | RedisUtils.set(cls.__get_redis(), "gp_list_names_first", json.dumps(datas)) |
| | | RedisUtils.set_async(cls.__db, "gp_list_names_first", json.dumps(datas)) |
| | | |
| | | # 删除首板代码名称 |
| | | @classmethod |
| | |
| | | # 首板代码管理 |
| | | class FirstCodeManager: |
| | | __instance = None |
| | | __db = 0 |
| | | |
| | | def __new__(cls, *args, **kwargs): |
| | | if not cls.__instance: |
| | |
| | | hasChanged = False |
| | | for code in codes: |
| | | if code not in self.__first_code_record_cache: |
| | | RedisUtils.sadd(self.__get_redis(), "first_code_record", code) |
| | | RedisUtils.sadd_async(self.__db, "first_code_record", code) |
| | | hasChanged = True |
| | | self.__first_code_record_cache.add(code) |
| | | if hasChanged: |
| | | RedisUtils.expire(self.__get_redis(), "first_code_record", tool.get_expire()) |
| | | RedisUtils.expire_async(self.__db, "first_code_record", tool.get_expire()) |
| | | |
| | | def is_in_first_record(self, code): |
| | | if RedisUtils.sismember(self.__get_redis(), "first_code_record", code): |
| | |
| | | hasChanged = False |
| | | for code in codes: |
| | | if code not in self.__first_code_limited_up_record_cache: |
| | | RedisUtils.sadd(self.__get_redis(), "first_code_limited_up_record", code) |
| | | RedisUtils.sadd_async(self.__get_redis(), "first_code_limited_up_record", code) |
| | | hasChanged = True |
| | | self.__first_code_limited_up_record_cache.add(code) |
| | | if hasChanged: |
| | | RedisUtils.expire(self.__get_redis(), "first_code_limited_up_record", tool.get_expire()) |
| | | RedisUtils.expire_async(self.__get_redis(), "first_code_limited_up_record", tool.get_expire()) |
| | | |
| | | # 是否涨停过 |
| | | def is_limited_up(self, code): |
| | |
| | | del_set = old_codes_set - codes_set |
| | | add_codes = codes_set - old_codes_set |
| | | for code in add_codes: |
| | | RedisUtils.sadd(redis_instance, "gp_list_first", code, auto_free=False) |
| | | RedisUtils.sadd_async(self.__db, "gp_list_first", code, auto_free=False) |
| | | for code in del_set: |
| | | RedisUtils.srem(redis_instance, "gp_list_first", code, auto_free=False) |
| | | RedisUtils.srem_async(self.__db, "gp_list_first", code, auto_free=False) |
| | | if add_codes or del_set: |
| | | RedisUtils.expire(redis_instance, "gp_list_first", tool.get_expire(), auto_free=False) |
| | | RedisUtils.expire_async(self.__db, "gp_list_first", tool.get_expire(), auto_free=False) |
| | | # 更新缓存 |
| | | self.__gp_list_first_codes_cache.clear() |
| | | self.__gp_list_first_codes_cache |= codes_set |
| | |
| | | |
| | | def get_gp_list(): |
| | | codes = RedisUtils.smembers(__redisManager.getRedis(), "gp_list") |
| | | first_codes = FirstGPCodesManager().get_first_gp_codes() |
| | | first_codes = FirstGPCodesManager().get_first_gp_codes_cache() |
| | | return set.union(codes, first_codes) |
| | | |
| | | |