From fb057d1ea341a2e5272a1e1fb2bbc4fda0fefc12 Mon Sep 17 00:00:00 2001 From: ham sangki Date: Thu, 2 May 2024 13:19:44 +0900 Subject: [PATCH] . --- src/main/java/com/batch/service/JobService.java | 12 ++++++++++-- src/main/resources/mybatis/primaryMapper/MatchingInnerDelingMapper.xml | 3 +++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/batch/service/JobService.java b/src/main/java/com/batch/service/JobService.java index a1daaa8..8b1cc43 100644 --- a/src/main/java/com/batch/service/JobService.java +++ b/src/main/java/com/batch/service/JobService.java @@ -53,6 +53,9 @@ public class JobService { @Value("${matching.auto.exceptListByComma}") String sExceptMatchType; + + @Value("${thread.ai.count}") + BigDecimal bdAiAsyncCount; @Value("${thread.ai.count.rowmax}") BigDecimal bdAiAsyncMaxRowCount; @@ -312,6 +315,7 @@ public class JobService { matchingInnerDelingMapper.createUserJob(paramLog); List lThread = new ArrayList(); + BigDecimal bdTotalThread = BigDecimal.ZERO; for(Map curMap : retData) { Map curMParams = new HashMap(); curMParams.putAll(curMap); @@ -328,10 +332,12 @@ public class JobService { sPythonAiTarget ); threadAiMatching.start(); + bdTotalThread = bdTotalThread.add(BigDecimal.ONE); //전체카운트가 처리가능카운트를 넘어설때 - if (bdCurrentRowCount.compareTo(bdAiAsyncMaxRowCount) > -1) { + if (bdCurrentRowCount.compareTo(bdAiAsyncMaxRowCount) > -1 || bdTotalThread.compareTo(bdAiAsyncCount) > -1) { bdCurrentRowCount = BigDecimal.ZERO; + bdTotalThread = BigDecimal.ZERO; //현재 작업그룹이 종료가 되었는지 체크해서 종료시 카운트 초기화 하고 다음작업을 한다. boolean blnStatus = true; @@ -340,8 +346,10 @@ public class JobService { do { Map mParam = new HashMap(); mParam.put("userJobGroup", jobGroupId); + mParam.put("exceptJobId", sDate); // 메인 User Job Id 제외 List lmJob = matchingInnerDelingMapper.getUserJobStatus(mParam); for (Map curJob : lmJob) { + blnStatus = true; String ScurStatus = (String) curJob.get("status"); if (!"Finished".equalsIgnoreCase(ScurStatus)) { blnStatus = false; @@ -350,7 +358,7 @@ public class JobService { break; } } - } while (!blnStatus && iTotalWait < bdAiAsyncTotalWaitTime.intValue()); //전체 기다리는 시간까지 체크 + } while (!blnStatus && iTotalWait < (bdAiAsyncTotalWaitTime.intValue() * 1000)); //전체 기다리는 시간까지 체크 log.info("Next Thread Group Processing"); } } diff --git a/src/main/resources/mybatis/primaryMapper/MatchingInnerDelingMapper.xml b/src/main/resources/mybatis/primaryMapper/MatchingInnerDelingMapper.xml index b31e79c..bd70b9d 100644 --- a/src/main/resources/mybatis/primaryMapper/MatchingInnerDelingMapper.xml +++ b/src/main/resources/mybatis/primaryMapper/MatchingInnerDelingMapper.xml @@ -659,6 +659,9 @@ public.batch_user_job_status WHERE user_job_group = #{userJobGroup} + + and user_job_id != #{exceptJobId} + ORDER BY user_job_id ASC -- libgit2 0.21.4