丁云鹏 1 年之前
父节点
当前提交
161f31beb5

+ 7 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/common/ThreadPoolFactory.java

@@ -25,6 +25,13 @@ public final class ThreadPoolFactory {
             new LinkedBlockingQueue<>(1000),
             new ThreadFactoryBuilder().setNameFormat("RecallService-%d").build(),
             new ThreadPoolExecutor.AbortPolicy());
+    public final static ExecutorService FILTER = new CommonThreadPoolExecutor(
+            256,
+            256,
+            0L, TimeUnit.SECONDS,
+            new LinkedBlockingQueue<>(1000),
+            new ThreadFactoryBuilder().setNameFormat("FilterService-%d").build(),
+            new ThreadPoolExecutor.AbortPolicy());
 
     public static ExecutorService defaultPool() {
         return DEFAULT;

+ 14 - 6
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/filter/AbstractFilterService.java

@@ -2,29 +2,31 @@ package com.tzld.piaoquan.recommend.server.service.filter;
 
 import com.tzld.piaoquan.recommend.server.service.PreViewedService;
 import com.tzld.piaoquan.recommend.server.service.ViewedService;
-import com.tzld.piaoquan.recommend.server.util.JSONUtils;
+import com.tzld.piaoquan.recommend.server.service.recall.RecallStrategy;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
  * @author dyp
  */
 @Slf4j
-public abstract class AbstractFilterService implements FilterService {
+public abstract class AbstractFilterService implements ApplicationContextAware {
     @Autowired
     private PreViewedService preViewedService;
 
     @Autowired
     private ViewedService viewedService;
 
+    protected final Map<String, RecallStrategy> strategyMap = new HashMap<>();
+
+    protected ApplicationContext applicationContext;
 
     protected List<Long> viewFilter(FilterParam param) {
         // log.info("filterParam={}", JSONUtils.toJson(param));
@@ -104,4 +106,10 @@ public abstract class AbstractFilterService implements FilterService {
             return videoIds.subList(0, Math.min(forceTruncation, videoIds.size()));
         }
     }
+
+    protected boolean isNewFilter() {
+        return false;
+    }
+
+
 }

+ 0 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/filter/FilterStrategy.java

@@ -1,6 +1,5 @@
 package com.tzld.piaoquan.recommend.server.service.filter;
 
-import com.tzld.piaoquan.recommend.server.service.filter.FilterParam;
 
 import java.util.List;
 

+ 12 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/filter/VideoFilterService.java

@@ -10,8 +10,20 @@ import java.util.List;
 @Service
 public class VideoFilterService extends AbstractFilterService {
     public FilterResult filter(FilterParam param) {
+        if (isNewFilter()) {
+            return filterNew(param);
+        } else {
+            return filterOld(param);
+        }
+    }
+
+    private FilterResult filterOld(FilterParam param) {
         List<Long> videoIds = viewFilter(param);
 
         return new FilterResult(videoIds);
     }
+
+    private FilterResult filterNew(FilterParam param) {
+
+    }
 }

+ 1 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/filter/VideoView.java → recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/filter/strategy/VideoView.java

@@ -1,4 +1,4 @@
-package com.tzld.piaoquan.recommend.server.service.filter;
+package com.tzld.piaoquan.recommend.server.service.filter.strategy;
 
 import lombok.Data;
 import org.springframework.data.annotation.Id;

+ 0 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/filter/strategy/ViewedStrategy.java

@@ -3,7 +3,6 @@ package com.tzld.piaoquan.recommend.server.service.filter.strategy;
 import com.tzld.piaoquan.recommend.server.common.ThreadPoolFactory;
 import com.tzld.piaoquan.recommend.server.service.filter.FilterParam;
 import com.tzld.piaoquan.recommend.server.service.filter.FilterStrategy;
-import com.tzld.piaoquan.recommend.server.service.filter.VideoView;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;