Просмотр исходного кода

穿插模式提高候选池上限:prior/posterior 各 2000,hot 10000

之前共用 500,导致穿插总池 1450 ≈ 145 页;
单源 SQL 真分页不受影响,只调穿插内存池。
prior/posterior 耗尽后由 hot 补位至 hot 池尽。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
刘立冬 1 день назад
Родитель
Сommit
19f8aeaf6f

+ 5 - 4
api-module/src/main/java/com/tzld/piaoquan/api/service/contentplatform/impl/ContentPlatformPlanServiceImpl.java

@@ -607,7 +607,8 @@ public class ContentPlatformPlanServiceImpl implements ContentPlatformPlanServic
         return gzhPlanMapper.selectByExample(example);
     }
 
-    private static final int RECOMMEND_CANDIDATE_LIMIT = 500;
+    private static final int DEMAND_CANDIDATE_LIMIT = 2000;
+    private static final int HOT_CANDIDATE_LIMIT = 10000;
     private static final String DEMAND_STRATEGY_PRIOR = "先验需求";
     private static final String DEMAND_STRATEGY_POSTERIOR = "后验需求";
     private static final String SOURCE_PRIOR = "prior";
@@ -732,9 +733,9 @@ public class ContentPlatformPlanServiceImpl implements ContentPlatformPlanServic
      * 缺路顺位补;先到先得(顺序:prior > posterior > hot)。
      */
     private Page<VideoContentItemVO> getInterleavedPage(VideoContentListParam param, ContentPlatformAccount user) {
-        List<VideoContentItemVO> prior = fetchPriorCandidates(user, RECOMMEND_CANDIDATE_LIMIT);
-        List<VideoContentItemVO> posterior = fetchPosteriorCandidates(user, RECOMMEND_CANDIDATE_LIMIT);
-        List<VideoContentItemVO> hot = fetchHotCandidates(param, user, RECOMMEND_CANDIDATE_LIMIT);
+        List<VideoContentItemVO> prior = fetchPriorCandidates(user, DEMAND_CANDIDATE_LIMIT);
+        List<VideoContentItemVO> posterior = fetchPosteriorCandidates(user, DEMAND_CANDIDATE_LIMIT);
+        List<VideoContentItemVO> hot = fetchHotCandidates(param, user, HOT_CANDIDATE_LIMIT);
         for (VideoContentItemVO v : prior) v.setSource(SOURCE_PRIOR);
         for (VideoContentItemVO v : posterior) v.setSource(SOURCE_POSTERIOR);
         for (VideoContentItemVO v : hot) v.setSource(SOURCE_HOT);