丁云鹏 1 anno fa
parent
commit
5565f89ad1

+ 20 - 13
recommend-feature-service/src/main/java/com/tzld/piaoquan/recommend/feature/service/AbstractFeatureService.java

@@ -90,6 +90,9 @@ public abstract class AbstractFeatureService<K, V> {
 
     private V load(K key) {
         V feature = getFromCache(key);
+        if (feature == null) {
+            feature = JSONUtils.fromJson(emptyData, typeToken, null);
+        }
 //        if (feature == null) {
 //            feature = getFromSource(key);
 //            saveToCache(key, feature);
@@ -128,25 +131,29 @@ public abstract class AbstractFeatureService<K, V> {
 
 
         Map<K, V> cacheFeatureMap = getFromCache(keys);
-        if (cacheFeatureMap.size() == keys.size()) {
-            return cacheFeatureMap;
-        }
-
-        ite = keys.iterator();
-        while (ite.hasNext()) {
-            cacheFeatureMap.containsKey(ite.next());
-            ite.remove();
+        for (int i = 0; i < keys.size(); i++) {
+            if (cacheFeatureMap.get(keys.get(i)) == null) {
+                cacheFeatureMap.put(keys.get(i), JSONUtils.fromJson(emptyData, typeToken, null));
+            }
         }
+        return cacheFeatureMap;
 
-        Map<K, V> sourceFeatureMap = null;
+//        if (cacheFeatureMap.size() == keys.size()) {
+//            return cacheFeatureMap;
+//        }
+//        ite = keys.iterator();
+//        while (ite.hasNext()) {
+//            cacheFeatureMap.containsKey(ite.next());
+//            ite.remove();
+//        }
+//
+//        Map<K, V> sourceFeatureMap = null;
 //        if (CollectionUtils.isNotEmpty(keys)) {
 //            sourceFeatureMap = getFromSource(keys);
 //            // TODO 可异步
 //            saveToCache(keys, sourceFeatureMap);
 //        }
-
-
-        return CommonCollectionUtils.merge(cacheFeatureMap, sourceFeatureMap);
+//        return CommonCollectionUtils.merge(cacheFeatureMap, sourceFeatureMap);
     }
 
     private Map<K, V> getFromCache(List<K> keys) {
@@ -231,7 +238,7 @@ public abstract class AbstractFeatureService<K, V> {
         try {
             return cache.getAll(videoIds);
         } catch (Exception e) {
-            log.error("");
+            log.error("get all failed {}", JSONUtils.toJson(videoIds), e);
         }
         return Collections.emptyMap();
     }