| | |
| | | } |
| | | |
| | | private void processThreeTimesValueDataStream(List<Double> weightList, String dataStream) { |
| | | // 从 Redis 获取已存储的值 |
| | | Object valueFromRedis = RedisUtil.get(dataStream); |
| | | JSONArray valueArray = new JSONArray(); |
| | | |
| | | |
| | | if (valueFromRedis != null) { |
| | | if (valueFromRedis instanceof String) { |
| | | try { |
| | | valueArray = JSONArray.parseArray((String) valueFromRedis); |
| | | } catch (Exception e) { |
| | | // 如果解析失败,说明 Redis 中的值可能不是合法的 JSON 数组,创建空数组 |
| | | valueArray = new JSONArray(); |
| | | } |
| | | } else if (valueFromRedis instanceof Double) { |
| | | valueArray.add(valueFromRedis); |
| | | } |
| | | // 处理 weightList 为 null 的情况 |
| | | if (weightList == null) { |
| | | // 若 weightList 为 null,可选择删除 Redis 中的对应键或存入空数组,这里选择存入空数组 |
| | | RedisUtil.set(dataStream, "[]"); |
| | | return; |
| | | } |
| | | valueArray.addAll(weightList); |
| | | RedisUtil.set(dataStream, valueArray.toJSONString()); |
| | | // 将 weightList 转换为 JSON 字符串并存入 Redis |
| | | String jsonStr = JSONArray.toJSONString(weightList); |
| | | RedisUtil.set(dataStream, jsonStr); |
| | | } |
| | | } |