| | |
| | | import tool |
| | | import decimal |
| | | |
| | | from ths import l2_listen_pos_health_manager |
| | | |
| | | __redisManager = redis_manager.RedisManager(0) |
| | | |
| | | |
| | |
| | | return val.get(name) |
| | | |
| | | @classmethod |
| | | def add_first_code_name(cls, code,name): |
| | | def add_first_code_name(cls, code, name): |
| | | val = cls.__get_redis().get("gp_list_names_first") |
| | | if not val: |
| | | return None |
| | |
| | | return True |
| | | else: |
| | | return False |
| | | |
| | | |
| | | # 想要买的代码 |
| | | class WantBuyCodesManager: |
| | | redisManager = redis_manager.RedisManager(0) |
| | | __redis_key = "want_buy_codes" |
| | | |
| | | @classmethod |
| | | def __get_redis(cls): |
| | | return cls.redisManager.getRedis() |
| | | |
| | | @classmethod |
| | | def clear(cls): |
| | | cls.__get_redis().delete(cls.__redis_key) |
| | | |
| | | @classmethod |
| | | def add_code(cls, code): |
| | | cls.__get_redis().sadd(cls.__redis_key, code) |
| | | |
| | | @classmethod |
| | | def remove_code(cls, code): |
| | | cls.__get_redis().srem(cls.__redis_key, code) |
| | | |
| | | @classmethod |
| | | def is_in(cls, code): |
| | | return cls.__get_redis().sismember(cls.__redis_key, code) |
| | | |
| | | @classmethod |
| | | def list_code(cls): |
| | | return cls.__get_redis().smembers(cls.__redis_key) |
| | | |
| | | |
| | | def __parse_codes_data(code_datas): |
| | |
| | | client_ids = client_manager.getValidL2Clients() |
| | | else: |
| | | client_ids.append(client_id) |
| | | random.shuffle(client_ids) |
| | | # random.shuffle(client_ids) |
| | | available_positions = [] |
| | | for client_id in client_ids: |
| | | redis_instance = __redisManager.getRedis() |
| | | k = "listen_code-{}-*".format(client_id) |
| | | keys = redis_instance.keys(k) |
| | | random.shuffle(keys) |
| | | # random.shuffle(keys) |
| | | codes = [] |
| | | for key in keys: |
| | | index = key.split("-")[-1] |
| | |
| | | continue |
| | | result = redis_instance.get(key) |
| | | if result is None or len(result) == 0: |
| | | return client_id, int(key.replace("listen_code-{}-".format(client_id), "")) |
| | | available_positions.append((client_id, int(key.replace("listen_code-{}-".format(client_id), "")))) |
| | | else: |
| | | codes.append((key, result)) |
| | | |
| | | # 查询是否有重复的代码 |
| | | codes_set = set() |
| | | count = 0 |
| | |
| | | codes_set.add(code[1]) |
| | | if len(codes_set) < count: |
| | | return client_id, int(code[0].replace("listen_code-{}-".format(client_id), "")) |
| | | |
| | | if available_positions: |
| | | # 获取健康状态 |
| | | available_positions_health_states = l2_listen_pos_health_manager.list_health_state(available_positions) |
| | | available_positions.sort(key=lambda x: available_positions_health_states[x], reverse=True) |
| | | # 取第1个数据 |
| | | return available_positions[0][0], available_positions[0][1] |
| | | |
| | | |
| | | |
| | | return None, None |
| | | |
| | |
| | | |
| | | |
| | | if __name__ == '__main__': |
| | | print(get_free_listen_pos_count()) |
| | | print(get_name_code("华脉科技")) |
| | | print(get_name_codes()) |
| | | print(get_can_listen_pos()) |