|
@@ -3,6 +3,7 @@ package com.tzld.piaoquan.recommend.server.service.recall.strategy;
|
|
|
import com.tzld.piaoquan.recommend.server.service.flowpool.FlowPoolConfigService;
|
|
|
import com.tzld.piaoquan.recommend.server.service.flowpool.FlowPoolConstants;
|
|
|
import com.tzld.piaoquan.recommend.server.service.recall.RecallParam;
|
|
|
+import com.tzld.piaoquan.recommend.server.util.JSONUtils;
|
|
|
import lombok.Data;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
@@ -44,12 +45,15 @@ public class FlowPoolWithLevelRecallStrategy extends AbstractFlowPoolWithLevelRe
|
|
|
availableLevels.add(lw);
|
|
|
}
|
|
|
}
|
|
|
+ log.info("flowPoolKeyAndLevel availableLevels={}", JSONUtils.toJson(availableLevels));
|
|
|
if (CollectionUtils.isEmpty(availableLevels)) {
|
|
|
return Pair.of("", "");
|
|
|
}
|
|
|
|
|
|
// 3. 根据可分发层级权重设置分发概率
|
|
|
Collections.sort(availableLevels, Comparator.comparingDouble(LevelWeight::getWeight));
|
|
|
+ log.info("flowPoolKeyAndLevel sorted availableLevels={}", JSONUtils.toJson(availableLevels));
|
|
|
+
|
|
|
double weightSum = availableLevels.stream().mapToDouble(o -> o.getWeight()).sum();
|
|
|
BigDecimal weightSumBD = new BigDecimal(weightSum);
|
|
|
double level_p_low = 0;
|
|
@@ -70,8 +74,8 @@ public class FlowPoolWithLevelRecallStrategy extends AbstractFlowPoolWithLevelRe
|
|
|
}
|
|
|
|
|
|
// 4. 随机生成[0,1)之间数,返回相应概率区间的key
|
|
|
-
|
|
|
double random_p = RandomUtils.nextDouble(0, 1);
|
|
|
+ log.info("flowPoolKeyAndLevel level_p_mapping={}, random_p={}", JSONUtils.toJson(level_p_mapping), random_p);
|
|
|
for (Map.Entry<String, LevelP> entry : level_p_mapping.entrySet()) {
|
|
|
if (random_p >= entry.getValue().getMin()
|
|
|
&& random_p >= entry.getValue().getMax()) {
|