From 571bc49201e63a19e813892fbe3dfa7f92879caf Mon Sep 17 00:00:00 2001 From: liujiang <569804566@qq.com> Date: Wed, 3 Dec 2025 15:50:09 +0800 Subject: [PATCH] =?UTF-8?q?master=EF=BC=9A=E6=AF=8F=E6=99=9A=E5=95=86?= =?UTF-8?q?=E5=93=81=E6=9D=83=E9=87=8D=E6=9B=B4=E6=96=B0=E5=88=B0ES?= =?UTF-8?q?=E4=B8=AD=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/quartz/task/XktTask.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java index da1951d0e..3a4d58f13 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java @@ -573,6 +573,35 @@ public class XktTask { return; } this.storeProdMapper.updateById(updateList); + // 构建一个批量数据集合 + List list = new ArrayList<>(); + updateList.forEach(storeProd -> { + // 构建部分文档更新请求 + list.add(new BulkOperation.Builder().update(u -> u + .action(a -> a.doc(new HashMap() {{ + 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 successIdList = bulkResponse.items().stream().map(BulkResponseItem::id).collect(Collectors.toList()); + List 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(","))); + } } /**