문자전송 배치 테스트

This commit is contained in:
hehihoho3@gmail.com 2024-11-28 11:34:51 +09:00
parent 26d9cadc81
commit aa51dd1755

View File

@ -4179,20 +4179,26 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
// int instCnt = mjonMsgDataDAO.insertMsgDataInfo_jdbc_advc(mjonMsgSendVOList);
//
int instCnt = 0;
int batchSize = (int) Math.ceil((double) mjonMsgSendVOList.size() / 3); // Batch 크기 계산
// Batch 처리
for (int i = 0; i < mjonMsgSendVOList.size(); i += batchSize) {
System.out.println(" i :: "+ i);
// Batch 크기만큼 리스트를 잘라냄
List<MjonMsgSendVO> batchList = mjonMsgSendVOList.subList(
i, Math.min(i + batchSize, mjonMsgSendVOList.size())
);
// DAO 메서드 호출
int insertedCount = mjonMsgDataDAO.insertMsgDataInfo_advc(batchList);
instCnt += insertedCount; // 삽입된 건수 누적
}
int totalSize = mjonMsgSendVOList.size(); // 데이터 개수
int batchSize = (int) Math.ceil((double) totalSize / 3); // 기본 3등분 크기 계산
// Batch 크기가 7000을 초과하면 7000으로 제한
batchSize = Math.min(batchSize, 7000);
int instCnt = 0;
int j = 0;
for (int i = 0; i < totalSize; i += batchSize) {
// Batch 리스트 생성
List<MjonMsgSendVO> batchList = mjonMsgSendVOList.subList(
i, Math.min(i + batchSize, totalSize)
);
System.out.println("i : "+ i);
// DAO 호출
int insertedCount = mjonMsgDataDAO.insertMsgDataInfo_advc(batchList);
instCnt += insertedCount;
j++;
}
// 종료 시간 측정
@ -4200,6 +4206,7 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
// 실행 시간 계산 (밀리초 -> 초로 변환)
double executionTimeInSeconds = (endTime - startTime) / 1000.0;
// 실행 시간 출력
System.out.println("j :: " + j);
System.out.println("batchSize :: " + batchSize);
System.out.println("Execution time :: " + executionTimeInSeconds + "" + "// insert Cnt :: "+instCnt);
// mjonMsgSendVOList.stream().forEach(t-> System.out.print(t.toString()+"\n") );