From 4c27234c1bb32561cc6a8c717bfc1ad8dbab000e Mon Sep 17 00:00:00 2001 From: ggun12 Date: Tue, 26 Mar 2024 17:28:22 +0900 Subject: [PATCH] * 자동일치 Sequence --- src/main/java/com/batch/config/MatchingItemProcessorAuto.java | 9 ++++++--- src/main/java/com/batch/service/JobService.java | 28 ++++++++++++++++++++++++++-- src/main/java/com/batch/util/StatisticsUtil.java | 10 ++++++++++ 3 files changed, 42 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/batch/config/MatchingItemProcessorAuto.java b/src/main/java/com/batch/config/MatchingItemProcessorAuto.java index 3c57a56..4496168 100644 --- a/src/main/java/com/batch/config/MatchingItemProcessorAuto.java +++ b/src/main/java/com/batch/config/MatchingItemProcessorAuto.java @@ -12,6 +12,7 @@ import org.springframework.stereotype.Component; import com.batch.config.MatchingSetup.Cond; import com.batch.config.MatchingSetup.Matching; import com.batch.mapper.primary.MatchingInnerDelingMapper; +import com.batch.util.StatisticsUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -37,7 +38,7 @@ public class MatchingItemProcessorAuto implements ItemProcessor { List lCompareField = matching.getCompareField(); String mtchType = matching.getType(); String mtchTypeName = matching.getTypeName(); - int mtchNumber = 0; + long mtchNumber = 0; int iUpdated = 0; log.info("CustomItemProcessorA.params : " + params.toString()); @@ -124,7 +125,9 @@ public class MatchingItemProcessorAuto implements ItemProcessor { List lMapTwo = mMatchingDataTwo.get(curKey); int iMin = Math.min(lMapOne.size(), lMapTwo.size()); - if (iMin > 0) mtchNumber++; + if (iMin > 0) { + mtchNumber = StatisticsUtil.getMtchNum(); /** 일치key Sequence */ + } for (int i=0; i { matchingInnerDelingMapper.setResult(Map.of("itemList", lUpdated)); iUpdated = iUpdated + lUpdated.size(); } - log.debug("Updated OrgData : " + iUpdated + "건"); + log.info("Updated OrgData : " + iUpdated + "건, mtchNumber = " + mtchNumber); //작업이 정상적으로 작동 되었을 경우 현재 처리하고 있는 데이타 그대로 넘겨준다. return item; diff --git a/src/main/java/com/batch/service/JobService.java b/src/main/java/com/batch/service/JobService.java index df0186e..860b7d2 100644 --- a/src/main/java/com/batch/service/JobService.java +++ b/src/main/java/com/batch/service/JobService.java @@ -33,7 +33,7 @@ import com.batch.config.MatchingSetup.Matching; import com.batch.mapper.primary.MatchingInnerDelingMapper; import com.batch.mapper.secondary.OracleMapper; import com.batch.util.FileUtil; - +import com.batch.util.StatisticsUtil; import com.batch.service.JobService; import lombok.extern.slf4j.Slf4j; @@ -98,6 +98,9 @@ public class JobService { } } + /** 일치key 초기화 */ + StatisticsUtil.initMtchNum(); + for (String sJobType : lJobType) { log.info("[" + sThreadName + "]Current running job type: " + sJobType); JobExecution jobExe = invokeJob("matchingInnerDelng", sJobType, params); @@ -216,7 +219,7 @@ public class JobService { mtchNumber = matchingExtraProcessorAuto.process(paramRec, 2, 2, i, i, mtchNumber); } - // 3건씩 매칭일 경우 최대 5000건 까지 + // 3건씩 매칭일 경우 최대 2000건 까지 for (int i = 0; i < 2000; i = i + 100) { mtchNumber = matchingExtraProcessorAuto.process(paramRec, 1, 3, 0, i, mtchNumber); } @@ -224,6 +227,27 @@ public class JobService { mtchNumber = matchingExtraProcessorAuto.process(paramRec, 3, 1, i, 0, mtchNumber); } + + for (int i = 0; i < 2000; i = i + 100) { + mtchNumber = matchingExtraProcessorAuto.process(paramRec, 2, 3, i, 0, mtchNumber); + } + + for (int i = 0; i < 2000; i = i + 100) { + mtchNumber = matchingExtraProcessorAuto.process(paramRec, 3, 2, i, 0, mtchNumber); + } + + for (int i = 0; i < 2000; i = i + 100) { + mtchNumber = matchingExtraProcessorAuto.process(paramRec, 3, 3, i, 0, mtchNumber); + } + + // 3건이상 매칭일 경우 최대 1000건 까지 + for (int i = 0; i < 1000; i = i + 25) { + mtchNumber = matchingExtraProcessorAuto.process(paramRec, 1, 4, 0, i, mtchNumber); + } + for (int i = 0; i < 1000; i = i + 25) { + mtchNumber = matchingExtraProcessorAuto.process(paramRec, 4, 1, 0, i, mtchNumber); + } + long endTime = System.currentTimeMillis(); log.info( "extra [" + sThreadName + " : " + sDate + "]Job Ended: " + endTime + " mtchNumber = " + mtchNumber); diff --git a/src/main/java/com/batch/util/StatisticsUtil.java b/src/main/java/com/batch/util/StatisticsUtil.java index 7ea7981..0c99038 100644 --- a/src/main/java/com/batch/util/StatisticsUtil.java +++ b/src/main/java/com/batch/util/StatisticsUtil.java @@ -25,6 +25,16 @@ public class StatisticsUtil { // log.info("resultAll=" + resultAll.toString()); // } + private static long mtch_num = 0; + + public static long getMtchNum() { + return ++mtch_num; + } + + public static void initMtchNum() { + mtch_num = 0; + } + /** * 조합 구하기 * -- libgit2 0.21.4