package com.kamco.cd.kamcoback.scheduler; import com.kamco.cd.kamcoback.scheduler.service.MapSheetMngFileJobService; import lombok.Getter; import lombok.RequiredArgsConstructor; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component @RequiredArgsConstructor public class MapSheetMngFileJobController { private final MapSheetMngFileJobService mapSheetMngFileJobService; // 현재 상태 확인용 Getter @Getter private boolean isSchedulerEnabled = false; @Getter private boolean isFileSyncSchedulerEnabled = false; @Getter private int mngSyncPageSize = 20; // 파일싱크 진행여부 확인하기 @Scheduled(fixedDelay = 1000 * 10) public void checkMngFileSync() { if (!isSchedulerEnabled) { return; } Integer mng = 0; // isFileSyncSchedulerEnabled = false; if (mapSheetMngFileJobService.checkMngFileSync() != null) { mng = mapSheetMngFileJobService.checkMngFileSync(); this.isFileSyncSchedulerEnabled = true; System.out.println( "MngFileSyncJob --> mngYyyy : " + mng + ", currentTime : " + System.currentTimeMillis()); } else { this.isFileSyncSchedulerEnabled = false; System.out.println( "MngFileSyncJob --> mngYyyy : " + mng + ", currentTime : " + System.currentTimeMillis()); } } @Scheduled(fixedDelay = 1000 * 10) public void mngFileSyncJob00() { if (!isSchedulerEnabled || !isFileSyncSchedulerEnabled) { return; } System.out.println("mngFileSyncJob 00 Processing currentTime : " + System.currentTimeMillis()); mapSheetMngFileJobService.checkMapSheetFileProcess(0, mngSyncPageSize); } @Scheduled(fixedDelay = 1000 * 5) public void mngFileSyncJob01() { if (!isSchedulerEnabled || !isFileSyncSchedulerEnabled) { return; } System.out.println("mngFileSyncJob 01 Processing currentTime : " + System.currentTimeMillis()); mapSheetMngFileJobService.checkMapSheetFileProcess(1, mngSyncPageSize); } @Scheduled(fixedDelay = 1000 * 5) public void mngFileSyncJob02() { if (!isSchedulerEnabled || !isFileSyncSchedulerEnabled) { return; } System.out.println("mngFileSyncJob 02 Processing currentTime : " + System.currentTimeMillis()); mapSheetMngFileJobService.checkMapSheetFileProcess(2, mngSyncPageSize); } @Scheduled(fixedDelay = 1000 * 5) public void mngFileSyncJob03() { if (!isSchedulerEnabled || !isFileSyncSchedulerEnabled) { return; } System.out.println("mngFileSyncJob 03 Processing currentTime : " + System.currentTimeMillis()); mapSheetMngFileJobService.checkMapSheetFileProcess(3, mngSyncPageSize); } @Scheduled(fixedDelay = 1000 * 5) public void mngFileSyncJob04() { if (!isSchedulerEnabled || !isFileSyncSchedulerEnabled) { return; } System.out.println("mngFileSyncJob 04 Processing currentTime : " + System.currentTimeMillis()); mapSheetMngFileJobService.checkMapSheetFileProcess(4, mngSyncPageSize); } @Scheduled(fixedDelay = 1000 * 5) public void mngFileSyncJob05() { if (!isSchedulerEnabled || !isFileSyncSchedulerEnabled) { return; } System.out.println("mngFileSyncJob 05 Processing currentTime : " + System.currentTimeMillis()); mapSheetMngFileJobService.checkMapSheetFileProcess(5, mngSyncPageSize); } @Scheduled(fixedDelay = 1000 * 5) public void mngFileSyncJob06() { if (!isSchedulerEnabled || !isFileSyncSchedulerEnabled) { return; } System.out.println("mngFileSyncJob 06 Processing currentTime : " + System.currentTimeMillis()); mapSheetMngFileJobService.checkMapSheetFileProcess(6, mngSyncPageSize); } @Scheduled(fixedDelay = 1000 * 5) public void mngFileSyncJob07() { if (!isSchedulerEnabled || !isFileSyncSchedulerEnabled) { return; } System.out.println("mngFileSyncJob 07 Processing currentTime : " + System.currentTimeMillis()); mapSheetMngFileJobService.checkMapSheetFileProcess(7, mngSyncPageSize); } @Scheduled(fixedDelay = 1000 * 5) public void mngFileSyncJob08() { if (!isSchedulerEnabled || !isFileSyncSchedulerEnabled) { return; } System.out.println("mngFileSyncJob 08 Processing currentTime : " + System.currentTimeMillis()); mapSheetMngFileJobService.checkMapSheetFileProcess(8, mngSyncPageSize); } @Scheduled(fixedDelay = 1000 * 5) public void mngFileSyncJob09() { if (!isSchedulerEnabled || !isFileSyncSchedulerEnabled) { return; } System.out.println("mngFileSyncJob 09 Processing currentTime : " + System.currentTimeMillis()); mapSheetMngFileJobService.checkMapSheetFileProcess(9, mngSyncPageSize); } // 3. 외부에서 플래그를 변경할 수 있는 Setter 메서드 public void setSchedulerEnabled(boolean enabled) { this.isSchedulerEnabled = enabled; this.isFileSyncSchedulerEnabled = false; System.out.println("스케줄러 동작 상태 변경됨: " + (enabled ? "ON" : "OFF")); } public void setMngSyncPageSize(int pageSize) { this.mngSyncPageSize = pageSize; System.out.println("스케줄러 처리 개수 변경됨: " + pageSize); } }