package com.spring.infra.quartz; import org.quartz.JobDataMap; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.springframework.batch.core.Job; import org.springframework.batch.core.JobParameters; import org.springframework.batch.core.JobParametersBuilder; import org.springframework.batch.core.configuration.JobRegistry; import org.springframework.batch.core.launch.JobLauncher; import org.springframework.lang.NonNull; import org.springframework.scheduling.quartz.QuartzJobBean; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; /** * Quartz 작업을 실행하는 Spring Batch Job 실행기 클래스입니다. * *
이 클래스는 Quartz 스케줄러에 의해 호출되며, 지정된 Spring Batch Job을 실행합니다.
* *주요 기능:
*Job 실행 시 사용되는 인스턴스 ID를 저장합니다.
*/ private static final String JOB_PARAMETERS_INSTANCE_KEY = "InstanceId"; /** * JobParameters의 타임스탬프 키입니다. * *Job 실행 시 현재 시간을 저장합니다.
*/ private static final String JOB_PARAMETERS_TIMESTAMP_KEY = "timestamp"; /** * JobLauncher 객체입니다. * *Spring Batch Job을 실행하는 데 사용됩니다.
*/ private final JobLauncher jobLauncher; /** * JobRegistry 객체입니다. * *Spring Batch에서 등록된 Job을 조회하는 데 사용됩니다.
*/ private final JobRegistry jobRegistry; /** * Quartz 스케줄러에 의해 호출되는 메소드로, 실제 Job을 실행합니다. * *이 메소드는 다음과 같은 작업을 수행합니다:
*