Bläddra i källkod

ADD: filter log

sunxy 1 år sedan
förälder
incheckning
b419fcc2cf

+ 7 - 5
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/framework/candidiate/Queue.java

@@ -1,11 +1,7 @@
 package com.tzld.piaoquan.recommend.server.framework.candidiate;
 
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
+import java.util.*;
 
 /**
  * An abstract data type represents a queue of certain item.
@@ -51,4 +47,10 @@ public class Queue<T> implements Iterable<Entry<T>> {
     public int size() {
         return entries.size();
     }
+
+    public void limit(int num) {
+        if (num >= 0 && num < entries.size()) {
+            entries.subList(num, entries.size()).clear();
+        }
+    }
 }

+ 4 - 2
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/framework/recaller/BaseRecaller.java

@@ -130,8 +130,10 @@ public class BaseRecaller<Video> {
         Map<Candidate, Queue<Video>> candidateQueueMap = Maps.newConcurrentMap();
         for (Candidate candidate : updateCandidates) {
             QueueName name = candidate.getCandidateQueueName();
-            if (queues.containsKey(name) && queues.get(name) != null) {
-                candidateQueueMap.put(candidate, queues.get(name));
+            Queue<Video> entries = queues.get(name);
+            if (queues.containsKey(name) && entries != null) {
+                entries.limit(candidate.getCandidateNum());
+                candidateQueueMap.put(candidate, entries);
             }
         }
         return candidateQueueMap;

+ 1 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/implement/recall/ViewedHistoryFilter.java

@@ -56,7 +56,7 @@ public class ViewedHistoryFilter extends AbstractFilter<Video> {
             return;
         }
 
-        t.removeIf(video -> !this.historySet.contains(String.valueOf(video.getVideoId())));
+        t.removeIf(video -> this.historySet.contains(String.valueOf(video.getVideoId())));
     }