Compare commits
No commits in common. "4788938c704a272eebb433d0561fbeb821c0cdad" and "3392d342b0299bbab4e4f38fafe6b17969a03407" have entirely different histories.
4788938c70
...
3392d342b0
@ -280,60 +280,12 @@ public class JobLauncherController {
|
|||||||
return "Job already running";
|
return "Job already running";
|
||||||
}
|
}
|
||||||
|
|
||||||
// JobParameters jobParameters =
|
JobParameters jobParameters =
|
||||||
// new JobParametersBuilder().addDate("time", new Date()).toJobParameters();
|
new JobParametersBuilder().addDate("time", new Date()).toJobParameters();
|
||||||
//
|
|
||||||
// jobLauncher.run(job, jobParameters);
|
|
||||||
//
|
|
||||||
// return jobName+ " executed successfully";
|
|
||||||
|
|
||||||
// 재시도 로직 추가
|
jobLauncher.run(job, jobParameters);
|
||||||
int maxRetries = 3;
|
|
||||||
int retryCount = 0;
|
|
||||||
long initialDelay = 60000; // 1분
|
|
||||||
|
|
||||||
while (retryCount < maxRetries) {
|
return jobName+ " executed successfully";
|
||||||
try {
|
|
||||||
JobParameters jobParameters = new JobParametersBuilder()
|
|
||||||
.addString("jobName", jobName)
|
|
||||||
.addDate("time", new Date())
|
|
||||||
.addLong("run.id", System.currentTimeMillis())
|
|
||||||
.toJobParameters();
|
|
||||||
|
|
||||||
log.info("Job {} 실행 시도 (재시도 {}/{})", jobName, retryCount + 1, maxRetries);
|
|
||||||
JobExecution jobExecution = jobLauncher.run(job, jobParameters);
|
|
||||||
|
|
||||||
log.info("Job {} 완료 상태: {}", jobName, jobExecution.getExitStatus().getExitCode());
|
|
||||||
return jobName + " executed successfully";
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
retryCount++;
|
|
||||||
|
|
||||||
// 데드락 오류인지 확인
|
|
||||||
boolean isDeadlock = e.getCause() != null &&
|
|
||||||
e.getCause().getMessage() != null &&
|
|
||||||
e.getCause().getMessage().toLowerCase().contains("deadlock");
|
|
||||||
|
|
||||||
if (isDeadlock && retryCount < maxRetries) {
|
|
||||||
long delay = initialDelay * retryCount; // 1분, 2분, 3분 증가
|
|
||||||
log.warn("Job {} 실행 중 데드락 발생. {}/{} 재시도 ({}ms 후 재시도)...",
|
|
||||||
jobName, retryCount, maxRetries, delay, e);
|
|
||||||
|
|
||||||
try {
|
|
||||||
Thread.sleep(delay);
|
|
||||||
} catch (InterruptedException ie) {
|
|
||||||
Thread.currentThread().interrupt();
|
|
||||||
log.error("Job {} 재시도 중 인터럽트 발생", jobName, ie);
|
|
||||||
return "Job " + jobName + " interrupted during retry";
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
log.error("Job {} 실행 실패 (재시도 {}/{})", jobName, retryCount, maxRetries, e);
|
|
||||||
return "Error executing job " + jobName + ": " + e.getMessage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return "Job " + jobName + " failed after " + maxRetries + " retries";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1830,7 +1830,7 @@ public class EstimateService {
|
|||||||
|
|
||||||
// 추후 개발 (가대중량표)
|
// 추후 개발 (가대중량표)
|
||||||
if (estimateRequest.getSchDrawingFlg().indexOf("4") < 0) {
|
if (estimateRequest.getSchDrawingFlg().indexOf("4") < 0) {
|
||||||
safeRemoveSheet(workbook, "重量算出シート");
|
safeRemoveSheet(workbook, "重量算");
|
||||||
safeRemoveSheet(workbook, "特異事項");
|
safeRemoveSheet(workbook, "特異事項");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1840,7 +1840,7 @@ public class EstimateService {
|
|||||||
safeRemoveSheet(workbook, "発電シミュレーション");
|
safeRemoveSheet(workbook, "発電シミュレーション");
|
||||||
safeRemoveSheet(workbook, "割付図・系統図");
|
safeRemoveSheet(workbook, "割付図・系統図");
|
||||||
safeRemoveSheet(workbook, "架台図");
|
safeRemoveSheet(workbook, "架台図");
|
||||||
safeRemoveSheet(workbook, "重量算出シート");
|
safeRemoveSheet(workbook, "重量算");
|
||||||
}else{
|
}else{
|
||||||
safeRemoveSheet(workbook,"見積書.");
|
safeRemoveSheet(workbook,"見積書.");
|
||||||
safeRemoveSheet(workbook, "特異事項");
|
safeRemoveSheet(workbook, "特異事項");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user