umsDispatums dispatcher 기능 변경

This commit is contained in:
Rinjae
2025-11-05 19:26:15 +09:00
parent fcdcd6e60e
commit 3675f40489
4 changed files with 27 additions and 50 deletions
@@ -52,7 +52,7 @@ public class JobHistoryService extends AbstractEMSDataSerivce<JobHistory, String
String rctStatus = findRecentStatus(jobName, instanceName); // 최근 Data 조회
log.info("[DHJEONG]1_rctStatus-->{}, jobName-->{}, instanceName-->{}", rctStatus, jobName, instanceName);
// log.info("[DHJEONG]1_rctStatus-->{}, jobName-->{}, instanceName-->{}", rctStatus, jobName, instanceName);
if (!status.equals(rctStatus) || !"E".equals(jobInfo.getChkStatus())) {
// 'Y' 이면 무조건 등록, 'E' 이면 ==> Status 바뀌면 등록
@@ -8,6 +8,10 @@ import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Arrays;
import java.util.Set;
import java.util.stream.Collectors;
/**
* Admin Job Configuration
* ----------------------
@@ -18,30 +22,31 @@ import org.springframework.beans.factory.annotation.Autowired;
// Cron Expression: */5 * * * * ?
@Slf4j
public class UmsDispatchJob implements Job {
private final UmsDispatchService umsDispatchService;
@Autowired
public UmsDispatchJob(UmsDispatchService umsDispatchService) {
this.umsDispatchService = umsDispatchService;
}
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
log.info("Starting Message Dispatch Job...");
// inst.Name 이 지정된 경우 해당 인스턴스에서만 동작
String jobInstName = context.getJobDetail().getJobDataMap().getString("inst.Name");
String jobInstName = context.getJobDetail().getJobDataMap().getString("execute.instances");
if (StringUtils.isNotEmpty(jobInstName)) {
log.debug("Job 실행 인스턴스 명이 지정되어 있음 - {}", jobInstName);
jobInstName = jobInstName.toLowerCase();
Set<String> propInstances = Arrays.stream(jobInstName.split(",")).map(String::trim).collect(Collectors.toSet());
jobInstName = jobInstName.trim();
String instanceName = System.getProperty("inst.Name");
if (StringUtils.isNotEmpty(instanceName)) {
log.debug("현재 인스턴스 명 : {}", instanceName);
instanceName = instanceName.trim();
instanceName = instanceName.trim().toLowerCase();
if (!jobInstName.equalsIgnoreCase(instanceName)) {
if (!propInstances.contains(instanceName)) {
log.debug("Job 인스턴스명과 현재 인스턴스명이 다름. 종료 처리");
return;
}