소스 검색

feat:修改Redis获取数据的方式

zhaohaipeng 11 달 전
부모
커밋
18697f7726
1개의 변경된 파일10개의 추가작업 그리고 4개의 파일을 삭제
  1. 10 4
      ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/VideoAdThompsonScorerV2.java

+ 10 - 4
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/VideoAdThompsonScorerV2.java

@@ -278,13 +278,19 @@ public class VideoAdThompsonScorerV2 {
 
     private Map<Long, CreativeStatistic> batchFindCreativeRedisCache(String keyPrefix, List<AdPlatformCreativeDTO> adIdList) {
         Map<Long, CreativeStatistic> resultMap = new HashMap<>();
-        for (AdPlatformCreativeDTO dto : adIdList) {
-            String redisKey = keyPrefix + dto.getCreativeId();
-            String value = redisHelper.get(redisKey);
+        List<String> redisKeys = adIdList.stream()
+                .map(dto -> keyPrefix + dto.getCreativeId())
+                .collect(Collectors.toList());
+
+        List<String> values = redisHelper.getValues(redisKeys);
+        for (int i = 0; i < adIdList.size(); i++) {
+            Long cid = adIdList.get(i).getCreativeId();
+            String value = values.get(i);
             if (StringUtils.isNotBlank(value)) {
-                resultMap.put(dto.getCreativeId(), gson.fromJson(value, CreativeStatistic.class));
+                resultMap.put(cid, gson.fromJson(value, CreativeStatistic.class));
             }
         }
+
         return resultMap;
     }