parent
53c011a682
commit
b99b509c28
@ -0,0 +1,4 @@
|
|||||||
|
package kr.re.etri.autoflow.payload.request;
|
||||||
|
|
||||||
|
// 이벤트 클래스
|
||||||
|
public record RunCreatedEvent(String runId) {}
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
package kr.re.etri.autoflow.service;
|
||||||
|
|
||||||
|
import kr.re.etri.autoflow.payload.request.RunCreatedEvent;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.batch.core.Job;
|
||||||
|
import org.springframework.batch.core.JobParametersBuilder;
|
||||||
|
import org.springframework.batch.core.launch.JobLauncher;
|
||||||
|
import org.springframework.context.ApplicationEvent;
|
||||||
|
import org.springframework.context.event.EventListener;
|
||||||
|
import org.springframework.scheduling.annotation.Async;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class RunCreatedListener {
|
||||||
|
|
||||||
|
private final JobLauncher jobLauncher;
|
||||||
|
private final Job runSyncJob;
|
||||||
|
|
||||||
|
@Async
|
||||||
|
@EventListener
|
||||||
|
public void onRunCreated(RunCreatedEvent event) {
|
||||||
|
try {
|
||||||
|
jobLauncher.run(
|
||||||
|
runSyncJob,
|
||||||
|
new JobParametersBuilder()
|
||||||
|
.addString("runId", event.runId())
|
||||||
|
.addLong("time", System.currentTimeMillis()) // 중복 실행 방지용
|
||||||
|
.toJobParameters()
|
||||||
|
);
|
||||||
|
} catch (Exception e) {
|
||||||
|
// 로깅 처리
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in new issue