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

전체색인, 부분색인 과부하를 줄이기 위한 트랜젝션 분리 처리.

LMC 4 лет назад
Родитель
Сommit
f8ca88ae4f

+ 50 - 1
src/main/java/com/style24/batch/biz/job/goods/TsbGoodsSearchAllJob.java

@@ -1,6 +1,7 @@
 package com.style24.batch.biz.job.goods;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
 
 import com.style24.batch.biz.job.TsbAbstractJob;
@@ -22,6 +23,9 @@ public class TsbGoodsSearchAllJob extends TsbAbstractJob<Goods, Goods, Goods> {
 	@Autowired
 	private TsbGoodsSearchService goodsSeachService;
 
+	@Autowired
+	private Environment env;
+
 	private int succCnt = 0;
 	private int failCnt = 0;
 
@@ -40,7 +44,52 @@ public class TsbGoodsSearchAllJob extends TsbAbstractJob<Goods, Goods, Goods> {
 	@Override
 	public Goods write(Goods goods) throws Exception {
 
-		goodsSeachService.saveGoodsSearchAll();
+//		goodsSeachService.saveGoodsSearchAll();
+
+		//과부하를 막기 위해 트랜젝션 분리처리
+		// 세션 설정
+		goodsSeachService.updateSessionGroupConcat();
+
+		// TB_GOODS_SEARCH_TEMP 삭제
+		goodsSeachService.deleteGoodsSearchTemp();
+
+		// 기본상품정보 생성
+		goodsSeachService.createGoodsSearchTempByGoods();
+
+		// 키워드 생성
+		goodsSeachService.updateGoodsSearchTempByKeyword();
+
+		// 상품이미지 생성
+		String goodsPath = env.getProperty("upload.goods.view");
+		goodsSeachService.updateGoodsSearchTempByImage(goodsPath);
+
+		// 동영상 생성
+		goodsSeachService.updateGoodsSearchTempByVideo();
+
+		// 즉시적용가 생성
+		goodsSeachService.updateGoodsSearchTempByPrice();
+
+		// 아이콘 생성
+		goodsSeachService.updateGoodsSearchTempByIcon();
+
+		// 전시 카테고리 생성
+		goodsSeachService.updateGoodsSearchTempByCate();
+
+		// 자사 옵션정보 생성
+		goodsSeachService.updateGoodsSearchTempBySelfOpt();
+
+		// 자사 옵션별 색상칩 생성
+		goodsSeachService.updateGoodsSearchTempBySelfColor();
+
+		// 자사 입점정보 생성
+		goodsSeachService.updateGoodsSearchTempBySelfNoOpt();
+
+		// TB_GOODS_SEARCH 삭제
+		goodsSeachService.deleteGoodsSearch();
+
+		// TB_GOODS_SEARCH 생성
+		goodsSeachService.createGoodsSearch();
+
 		return goods;
 	}
 

+ 57 - 1
src/main/java/com/style24/batch/biz/service/TsbGoodsSearchService.java

@@ -80,6 +80,63 @@ public class TsbGoodsSearchService {
 
 	}
 
+	@Transactional("shopTxnManager")
+	public void updateSessionGroupConcat() {
+		goodsSearchDao.updateSessionGroupConcat();
+	}
+	@Transactional("shopTxnManager")
+	public void deleteGoodsSearchTemp() {
+		goodsSearchDao.deleteGoodsSearchTemp();
+	}
+	@Transactional("shopTxnManager")
+	public void createGoodsSearchTempByGoods() {
+		goodsSearchDao.createGoodsSearchTempByGoods("A");
+	}
+	@Transactional("shopTxnManager")
+	public void updateGoodsSearchTempByKeyword() {
+		goodsSearchDao.updateGoodsSearchTempByKeyword();
+	}
+	@Transactional("shopTxnManager")
+	public void updateGoodsSearchTempByImage(String goodsPath) {
+		goodsSearchDao.updateGoodsSearchTempByImage(goodsPath);
+	}
+	@Transactional("shopTxnManager")
+	public void updateGoodsSearchTempByVideo() {
+		goodsSearchDao.updateGoodsSearchTempByVideo();
+	}
+	@Transactional("shopTxnManager")
+	public void updateGoodsSearchTempByPrice() {
+		goodsSearchDao.updateGoodsSearchTempByPrice();
+	}
+	@Transactional("shopTxnManager")
+	public void updateGoodsSearchTempByIcon() {
+		goodsSearchDao.updateGoodsSearchTempByIcon();
+	}
+	@Transactional("shopTxnManager")
+	public void updateGoodsSearchTempByCate() {
+		goodsSearchDao.updateGoodsSearchTempByCate();
+	}
+	@Transactional("shopTxnManager")
+	public void updateGoodsSearchTempBySelfOpt() {
+		goodsSearchDao.updateGoodsSearchTempBySelfOpt();
+	}
+	@Transactional("shopTxnManager")
+	public void updateGoodsSearchTempBySelfColor() {
+		goodsSearchDao.updateGoodsSearchTempBySelfColor();
+	}
+	@Transactional("shopTxnManager")
+	public void updateGoodsSearchTempBySelfNoOpt() {
+		goodsSearchDao.updateGoodsSearchTempBySelfNoOpt();
+	}
+	@Transactional("shopTxnManager")
+	public void deleteGoodsSearch() {
+		goodsSearchDao.deleteGoodsSearch();
+	}
+	@Transactional("shopTxnManager")
+	public void createGoodsSearch() {
+		goodsSearchDao.createGoodsSearch();
+	}
+
 	/**
 	 * 상품검색 작업 - 부분색인(가격,재고,상품상태,타이틀,혜택(딱지))
 	 *
@@ -87,7 +144,6 @@ public class TsbGoodsSearchService {
 	 * @author eskim
 	 * @since 2021. 06. 13
 	 */
-	@Transactional("shopTxnManager")
 	public void saveGoodsSearchSection() {
 
 		// 변경상품 코드 수집 - TB_GOODS_SEARCH_SECTION_TEMP