주소록 등록 배치크기 조정 : js 3만, java batchX
This commit is contained in:
parent
d5bd9fb7ee
commit
6ea9e39a98
@ -3,6 +3,7 @@ package itn.let.mjo.addr.service.impl;
|
|||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
@ -491,9 +492,11 @@ public class AddrServiceImpl extends EgovAbstractServiceImpl implements AddrSer
|
|||||||
try {
|
try {
|
||||||
if(addrListVO.size() > 0) {
|
if(addrListVO.size() > 0) {
|
||||||
// 등록
|
// 등록
|
||||||
|
// 배치 제거
|
||||||
|
// 참고 http://wiki.iten.co.kr:9999/doku.php?id=%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8:%EB%AC%B8%EC%9E%90%EC%98%A8_%EA%B0%9C%EC%84%A0:03.%ED%85%8C%EC%8A%A4%ED%8A%B8:%EC%A3%BC%EC%86%8C%EB%A1%9D_30%EB%A7%8C%EA%B1%B4#%EB%B9%84%EA%B5%90_%ED%91%9C
|
||||||
// Batch insert
|
// Batch insert
|
||||||
batchInsertAddrListAsync(addrListVO);
|
// batchInsertAddrListAsync(addrListVO);
|
||||||
// addrDAO.insertAddrList(addrListVO);
|
addrDAO.insertAddrList(addrListVO);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -514,12 +517,22 @@ public class AddrServiceImpl extends EgovAbstractServiceImpl implements AddrSer
|
|||||||
// 중복체크 dupliCnt
|
// 중복체크 dupliCnt
|
||||||
|
|
||||||
|
|
||||||
|
// 현재 시간 가져오기
|
||||||
|
LocalDateTime now = LocalDateTime.now();
|
||||||
|
|
||||||
|
// 원하는 포맷 설정
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
|
|
||||||
|
// 포맷된 시간 문자열로 변환
|
||||||
|
String formattedDateTime = now.format(formatter);
|
||||||
|
|
||||||
|
// 출력
|
||||||
|
System.out.println(formattedDateTime);
|
||||||
//
|
//
|
||||||
String message = "저장에 성공했습니다.\n저장 : " + addrListVO.size() + "건"
|
String message = "저장에 성공했습니다.\n저장 : " + addrListVO.size() + "건"
|
||||||
// +", 중복 : " + invalid.dupliCnt + "건"
|
// +", 중복 : " + invalid.dupliCnt + "건"
|
||||||
+", INERT 총 시간 : " + executionTime+ "초"
|
+", INERT 총 시간 : " + executionTime+ "초"
|
||||||
+", 휴대폰번호 오류 : " + invalid.get() + "건";
|
+", 현재시간 : " + formattedDateTime;
|
||||||
|
|
||||||
return new StatusResponse(
|
return new StatusResponse(
|
||||||
HttpStatus.OK
|
HttpStatus.OK
|
||||||
|
|||||||
@ -265,37 +265,29 @@ function SetAddrMassSave(){
|
|||||||
alert("한 개 이상의 연락처를 입력하세요");
|
alert("한 개 이상의 연락처를 입력하세요");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// else if (selectedData.length > 20000) {
|
|
||||||
// alert("2만줄 이상의 업로드는 데이터 부하로 업로드 할수 없습니다.");
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
|
|
||||||
var selectMassVal = $(tabluC+" #addrGrpIdInfo option:selected").val();
|
if($objTabul.getData().length > 300000){
|
||||||
|
alert("30만개 까지 등록 가능합니다.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// var selectMassVal = $(tabluC+" #addrGrpIdInfo option:selected").val();
|
||||||
|
|
||||||
var loginVO = '${LoginVO}';
|
var loginVO = '${LoginVO}';
|
||||||
// if(loginVO == "" || loginVO == null){
|
|
||||||
if(fn_utils_isEmpty(loginVO)){
|
if(fn_utils_isEmpty(loginVO)){
|
||||||
alert("로그인 후 이용이 가능합니다.");
|
alert("로그인 후 이용이 가능합니다.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// tableExcel 그룹의 select 요소들을 확인
|
// tableExcel select 요소들을 확인
|
||||||
// var isPhoneSelected = false;
|
|
||||||
// var isNameSelected = false;
|
|
||||||
var columns = $objTabul.getColumns();
|
var columns = $objTabul.getColumns();
|
||||||
var isAddrPhoneNoSelected = columns.some(column => column.getField() === 'addrPhoneNo');
|
var isAddrPhoneNoSelected = columns.some(column => column.getField() === 'addrPhoneNo');
|
||||||
|
|
||||||
if (!isAddrPhoneNoSelected) {
|
if (!isAddrPhoneNoSelected) {
|
||||||
// isPhoneSelected = true;
|
// isPhoneSelected = true;
|
||||||
alert('휴대폰이 선택되지 않았습니다.');
|
alert('휴대폰이 선택되지 않았습니다.');
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
// if (!isPhoneSelected || !isNameSelected) {
|
|
||||||
// alert('휴대폰 또는 이름이 선택되지 않았습니다.');
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
// 주소록이 새로생성이면 새로운 주소록명이 있는지 확인
|
// 주소록이 새로생성이면 새로운 주소록명이 있는지 확인
|
||||||
if ($(tabluC+" #addrGrpIdInfo option:selected").val() == "NEW"
|
if ($(tabluC+" #addrGrpIdInfo option:selected").val() == "NEW"
|
||||||
@ -321,24 +313,17 @@ function SetAddrMassSave(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
var confirmMsg = "저장하시겠습니까?\n이름 20byte, [*1*]~[*4*] 40byte, 메모 250byte 초과 글자는 절사됩니다.";
|
var confirmMsg = "저장하시겠습니까?\n이름 20byte, [*1*]~[*4*] 40byte, 메모 250byte 초과 글자는 절사됩니다.";
|
||||||
// if (selectedData.length >= 10000) {
|
|
||||||
// confirmMsg = "저장하시겠습니까?\n이름 20byte, [*1*]~[*4*] 40byte, 메모 250byte 초과 글자는 절사됩니다.\n1만건 이상 등록시 약 30초정도 소요됩니다.\n잠시만 기다려주세요.";
|
|
||||||
// }
|
|
||||||
if (confirm(confirmMsg)) {
|
if (confirm(confirmMsg)) {
|
||||||
//로딩창 show
|
//로딩창 show
|
||||||
fn_loadAddActive();
|
fn_loadAddActive();
|
||||||
|
|
||||||
console.time('updateData');
|
|
||||||
setTimeout(setSenderList_advc, 1000);
|
setTimeout(setSenderList_advc, 1000);
|
||||||
// setTimeout(setSenderList_old, 1000);
|
// setTimeout(setSenderList_old, 1000);
|
||||||
|
|
||||||
console.timeEnd('updateData');
|
|
||||||
// fn_loadAddActive();
|
|
||||||
// setSenderList_advc();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
// 주소록 등록 advc
|
// 주소록 등록 old
|
||||||
function setSenderList_old(){
|
function setSenderList_old(){
|
||||||
|
|
||||||
// tab에 해당하는 타블레이터 가져오기
|
// tab에 해당하는 타블레이터 가져오기
|
||||||
@ -394,7 +379,7 @@ function setSenderList_old(){
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
function setSenderList_advc(){
|
function setSenderList_advc(){
|
||||||
|
|
||||||
@ -406,7 +391,7 @@ function setSenderList_advc(){
|
|||||||
var addrGrpIdInfo = $(tabluC+" #addrGrpIdInfo option:selected").val();
|
var addrGrpIdInfo = $(tabluC+" #addrGrpIdInfo option:selected").val();
|
||||||
var addrGrpNmInfo = $(tabluC+" #addrGrpNm").val();
|
var addrGrpNmInfo = $(tabluC+" #addrGrpNm").val();
|
||||||
|
|
||||||
var batchSize = 15000; // 배치 크기
|
var batchSize = 30000; // 배치 크기
|
||||||
var totalBatches = Math.ceil(dataToSend.length / batchSize); // 총 배치 수
|
var totalBatches = Math.ceil(dataToSend.length / batchSize); // 총 배치 수
|
||||||
var currentBatch = 0; // 현재 배치 인덱스
|
var currentBatch = 0; // 현재 배치 인덱스
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user