728x90
//*경로존재유무, 용량체크
async function checkVolum(path, textBool, fileCntBool){
try {
let response = await $.ajax({
url: GET_SIZECHECK_URL,
type: 'GET',
data: {"path": path, "textChk": textBool, "fileCntChk": fileCntBool, "floatDigits": 0},
dataType: "json",
});
return response;
} catch (error) {
console.log('경로 혹은 용량 확인이 불가합니다');
}
}
async function showTenantVolumn(rowCount) {
const promises = [];
for (let i = 0; i < rowCount; i++) {
let row = $('#grTenant').datagrid('getRows')[i]; // Use 'let' instead of 'var'
let transPath = "/" + row.mainDir + gGlobal.TRANS_PATH;
row['mainDir'] = transPath;
// mainDir 업데이트 후 즉시 행 새로 고침
$('#grTenant').datagrid('refreshRow', i);
// 비동기 작업을 Promise 배열에 추가
promises.push(
checkVolum(row.mainDir, false, false).then(CheckRes => {
if(CheckRes){
if (CheckRes.checkExist) {
console.log(CheckRes.checkSize);
row['volume'] = CheckRes.checkSize; // 컬럼에 용량 출력
}else{
row['existYn'] = "N";
}
}else{
row['existYn'] = "N";
}
// 모든 결과를 업데이트된 행으로 저장
$('#grTenant').datagrid('refreshRow', i); // 결과가 변경된 후 다시 새로 고침
})
);
}
// 모든 Promise가 완료될 때까지 기다림
await Promise.all(promises);
}
async await을 사용해 호출한 컨트롤러 응답이 시간이 오래걸려 답변을 줘서 느릴때,
ajax timeout의 값을 0으로 설정해도 503에러가 발생하면서 응답값이 출력되지않았다.
무슨 문제인가 했는데 톰캣 서버 connectionTimeout 문제인거같아 server.xml의 connectionTimeout도 원래 디폴트값인 20초에서
600초로 바꿔도 동일한 문제가있었다. 찾아보니 대기시간은 아래 두개로 설정할수있는데,
asyncTimeout: 비동기 요청에 대한 대기 시간을 설정합니다. 이 값이 초과되면 비동기 요청이 타임아웃되고 오류가 발생할 수 있습니다. 따라서 이 값을 늘리면 비동기 요청이 더 긴 시간 동안 대기할 수 있습니다.
connectionTimeout: 클라이언트와 서버 간의 연결이 이루어진 후, 응답을 받을 때까지 대기하는 시간입니다. 이 값이 초과되면 연결이 종료되고 503 오류가 발생할 수 있습니다.
asyncTimeout 을추가해서 600초로 설정했더니 응답이 느리더라도 오류없이 출력되었다.
<Connector connectionTimeout="600000" asyncTimeout = "600000" port="8089" protocol="HTTP/1.1" redirectPort="8443"/>
asyncTimeout 과함께 connectionTimeout도 적절하게 설정되어 있어야 하며, 이 값이 너무 짧으면 연결이 끊어질 수 있다.
728x90
'STUDY > WEB' 카테고리의 다른 글
[tomcat] Protocol handler start failed 에러 - 톰캣 실행 시 포트번호 충돌 오류 (0) | 2024.10.30 |
---|---|
[tomcat] 윈도우 war 배포 시 주의사항 (C드라이브) (0) | 2024.09.30 |
[tomcat] Not allowed to load local resource 에러 (0) | 2024.02.21 |
[Tomcat] 톰캣 로그 종류 (0) | 2024.02.21 |
[Web] 브라우저의 동작 원리 (0) | 2023.12.02 |