瀏覽代碼

不分地域小时级召回

丁云鹏 1 年之前
父節點
當前提交
98bdd5d8a6

+ 2 - 4
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/RecommendService.java

@@ -19,10 +19,7 @@ import com.tzld.piaoquan.recommend.server.service.rank.RankService;
 import com.tzld.piaoquan.recommend.server.service.recall.RecallParam;
 import com.tzld.piaoquan.recommend.server.service.recall.RecallResult;
 import com.tzld.piaoquan.recommend.server.service.recall.RecallService;
-import com.tzld.piaoquan.recommend.server.service.recall.strategy.Region24HRecallStrategy;
-import com.tzld.piaoquan.recommend.server.service.recall.strategy.RegionHRecallStrategy;
-import com.tzld.piaoquan.recommend.server.service.recall.strategy.RegionRelative24HDupRecallStrategy;
-import com.tzld.piaoquan.recommend.server.service.recall.strategy.RegionRelative24HRecallStrategy;
+import com.tzld.piaoquan.recommend.server.service.recall.strategy.*;
 import com.tzld.piaoquan.recommend.server.util.CommonCollectionUtils;
 import com.tzld.piaoquan.recommend.server.util.JSONUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -430,6 +427,7 @@ public class RecommendService {
         };
 
         consumer.accept(RegionHRecallStrategy.PUSH_FORM);
+        consumer.accept(RegionHDupRecallStrategy.PUSH_FORM);
         consumer.accept(Region24HRecallStrategy.PUSH_FORM);
         consumer.accept(RegionRelative24HRecallStrategy.PUSH_FORM);
         consumer.accept(RegionRelative24HDupRecallStrategy.PUSH_FORM);

+ 10 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/RankService.java

@@ -62,6 +62,7 @@ public class RankService {
     private List<Video> mergeAndRankRovRecall(RankParam param) {
         List<Video> rovRecallRank = new ArrayList<>();
         rovRecallRank.addAll(extractAndSort(param, RegionHRecallStrategy.PUSH_FORM));
+        rovRecallRank.addAll(extractAndSort(param, RegionHDupRecallStrategy.PUSH_FORM));
         rovRecallRank.addAll(extractAndSort(param, Region24HRecallStrategy.PUSH_FORM));
         rovRecallRank.addAll(extractAndSort(param, RegionRelative24HRecallStrategy.PUSH_FORM));
         rovRecallRank.addAll(extractAndSort(param, RegionRelative24HDupRecallStrategy.PUSH_FORM));
@@ -87,7 +88,15 @@ public class RankService {
         if (param.getAbCode().equals("60054")
                 || param.getAbCode().equals("60068")
                 || param.getAbCode().equals("60081")
-                || param.getAbCode().equals("60084")) {
+                || param.getAbCode().equals("60084")
+                || param.getAbCode().equals("60087")
+                || param.getAbCode().equals("60088")
+                || param.getAbCode().equals("60089")
+                || param.getAbCode().equals("60090")
+                || param.getAbCode().equals("60091")
+                || param.getAbCode().equals("60092")
+                || param.getAbCode().equals("60093")
+                || param.getAbCode().equals("60094")) {
 
             List<String> videoIdKeys = rovRecallRank.stream()
                     .map(t -> param.getRankKeyPrefix() + t.getVideoId())

+ 11 - 2
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/RecallService.java

@@ -1,8 +1,8 @@
 package com.tzld.piaoquan.recommend.server.service.recall;
 
+import com.tzld.piaoquan.recommend.server.common.ThreadPoolFactory;
 import com.tzld.piaoquan.recommend.server.common.enums.AppTypeEnum;
 import com.tzld.piaoquan.recommend.server.model.Video;
-import com.tzld.piaoquan.recommend.server.common.ThreadPoolFactory;
 import com.tzld.piaoquan.recommend.server.service.flowpool.FlowPoolConstants;
 import com.tzld.piaoquan.recommend.server.service.recall.strategy.*;
 import com.tzld.piaoquan.recommend.server.util.CommonCollectionUtils;
@@ -102,7 +102,15 @@ public class RecallService implements ApplicationContextAware {
             strategies.add(strategyMap.get(FlowPoolWithScoreRecallStrategy.class.getSimpleName()));
         }
 
-        if (param.getAbCode().equals("60054")) {
+        if (param.getAbCode().equals("60054")
+                || param.getAbCode().equals("60087")
+                || param.getAbCode().equals("60088")
+                || param.getAbCode().equals("60089")
+                || param.getAbCode().equals("60090")
+                || param.getAbCode().equals("60091")
+                || param.getAbCode().equals("60092")
+                || param.getAbCode().equals("60093")
+                || param.getAbCode().equals("60094")) {
             strategies.add(strategyMap.get(SimHotVideoRecallStrategy.class.getSimpleName()));
         } else if (param.getAbCode().equals("60068")
                 || param.getAbCode().equals("60081")
@@ -121,6 +129,7 @@ public class RecallService implements ApplicationContextAware {
             strategies.add(strategyMap.get(RegionHRecallStrategy.class.getSimpleName()));
             strategies.add(strategyMap.get(Region24HRecallStrategy.class.getSimpleName()));
         }
+        strategies.add(strategyMap.get(RegionHDupRecallStrategy.class.getSimpleName()));
         strategies.add(strategyMap.get(RegionRelative24HRecallStrategy.class.getSimpleName()));
         strategies.add(strategyMap.get(RegionRelative24HDupRecallStrategy.class.getSimpleName()));
 

+ 39 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/strategy/RegionHDupRecallStrategy.java

@@ -0,0 +1,39 @@
+package com.tzld.piaoquan.recommend.server.service.recall.strategy;
+
+import com.tzld.piaoquan.recommend.server.service.recall.RecallParam;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+/**
+ * 分地域
+ *
+ * @author dyp
+ */
+@Service
+public class RegionHDupRecallStrategy extends AbstractRegionRecallStrategy {
+    public static final String PUSH_FORM = "rov_recall_h_h";
+    public static final String LAST_VIDEO_KEY_FORMAT = "recall:last:item:region:dup:h:%s:%s";
+
+    @Override
+    protected String recordKey(RecallParam param) {
+        return String.format("recall:last:record:region:dup:h:%s:%s", param.getAppType(), param.getMid());
+    }
+
+    @Override
+    protected String poolKey(RecallParam param, String now_dt, int h) {
+        // hard code  因为生产任务,会给region填充默认值-1
+        return String.format("recall:item:score:region:dup:h:%s:%s:%s:%s:%s",
+                StringUtils.isBlank(param.getRegionCode()) ? -1 : param.getRegionCode(),
+                param.getDataKey(), param.getRuleKey(), now_dt, h);
+    }
+
+    @Override
+    protected String lastVideoKey(RecallParam param) {
+        return String.format(LAST_VIDEO_KEY_FORMAT, param.getAppType(), param.getMid());
+    }
+
+    @Override
+    public String pushFrom() {
+        return PUSH_FORM;
+    }
+}