优化consumer生成商品索引。改为批量生成

This commit is contained in:
paulGao 2022-04-25 10:26:51 +08:00
parent 0354d6dc3e
commit aa185c8bd2
3 changed files with 25 additions and 6 deletions

View File

@ -376,20 +376,18 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
*/
private void generatorGoodsIndex(Goods goods, List<GoodsSku> goodsSkuList) {
int skuSource = 100;
List<EsGoodsIndex> esGoodsIndices = new ArrayList<>();
for (GoodsSku goodsSku : goodsSkuList) {
EsGoodsIndex esGoodsOld = goodsIndexService.findById(goodsSku.getId());
EsGoodsIndex goodsIndex = this.settingUpGoodsIndexData(goods, goodsSku);
goodsIndex.setSkuSource(skuSource--);
log.info("goodsSku{}", goodsSku);
log.info("esGoodsOld{}", esGoodsOld);
//如果商品库存不为0并且es中有数据
if (goodsSku.getQuantity() > 0 && esGoodsOld == null) {
if (goodsSku.getQuantity() > 0) {
log.info("生成商品索引 {}", goodsIndex);
this.goodsIndexService.addIndex(goodsIndex);
} else if (goodsSku.getQuantity() > 0 && esGoodsOld != null) {
goodsIndexService.updateIndex(goodsIndex);
esGoodsIndices.add(goodsIndex);
}
}
this.goodsIndexService.addIndex(esGoodsIndices);
}
private EsGoodsIndex settingUpGoodsIndexData(Goods goods, GoodsSku goodsSku) {

View File

@ -38,6 +38,13 @@ public interface EsGoodsIndexService {
*/
void addIndex(EsGoodsIndex goods);
/**
* 添加商品索引
*
* @param goods 商品索引信息
*/
void addIndex(List<EsGoodsIndex> goods);
/**
* 更新商品索引
*

View File

@ -210,6 +210,20 @@ public class EsGoodsIndexServiceImpl extends BaseElasticsearchService implements
}
}
/**
* 添加商品索引
*
* @param goods 商品索引信息
*/
@Override
public void addIndex(List<EsGoodsIndex> goods) {
try {
goodsIndexRepository.saveAll(goods);
} catch (Exception e) {
log.error("批量为商品生成索引异常", e);
}
}
@Override
public void updateIndex(EsGoodsIndex goods) {
goodsIndexRepository.save(goods);