master:每晚商品权重更新到ES中;

pull/1121/head
liujiang 2025-12-03 15:50:09 +08:00
parent 0c707d59e3
commit 571bc49201
1 changed files with 29 additions and 0 deletions

View File

@ -573,6 +573,35 @@ public class XktTask {
return;
}
this.storeProdMapper.updateById(updateList);
// 构建一个批量数据集合
List<BulkOperation> list = new ArrayList<>();
updateList.forEach(storeProd -> {
// 构建部分文档更新请求
list.add(new BulkOperation.Builder().update(u -> u
.action(a -> a.doc(new HashMap<String, Object>() {{
put("recommendWeight", storeProd.getRecommendWeight());
put("saleWeight", storeProd.getSaleWeight());
put("popularityWeight", storeProd.getPopularityWeight());
}}))
.id(String.valueOf(storeProd.getId()))
.index(ES_INDEX_NAME))
.build());
});
try {
// 调用bulk方法执行批量更新操作
BulkResponse bulkResponse = esClientWrapper.getEsClient().bulk(e -> e.index(ES_INDEX_NAME).operations(list));
log.info("定时任务,批量更新商品权重到 ES 成功的 id列表: {}", bulkResponse.items().stream().map(BulkResponseItem::id).collect(Collectors.toList()));
// 有哪些没执行成功的,需要发飞书通知
List<String> successIdList = bulkResponse.items().stream().map(BulkResponseItem::id).collect(Collectors.toList());
List<String> unExeIdList = updateList.stream().map(String::valueOf).filter(x -> !successIdList.contains(x)).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(unExeIdList)) {
fsNotice.sendMsg2DefaultChat("定时任务,批量更新商品权重到 ES 失败", "以下storeProdId未执行成功: " + unExeIdList);
}
} catch (Exception e) {
log.error("定时任务,批量更新商品权重到 ES 失败", e);
fsNotice.sendMsg2DefaultChat("全部失败,定时任务批量更新商品权重到 ES 失败",
updateList.stream().map(StoreProduct::getId).map(String::valueOf).collect(Collectors.joining(",")));
}
}
/**