Sfoglia il codice sorgente

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

zhaohaipeng 11 mesi fa
parent
commit
18697f7726

+ 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;
     }