diff --git a/src/main/java/com/eactive/eai/rms/common/scheduler/EMSSchedulerImpl.java b/src/main/java/com/eactive/eai/rms/common/scheduler/EMSSchedulerImpl.java index d60458d..2474c2d 100644 --- a/src/main/java/com/eactive/eai/rms/common/scheduler/EMSSchedulerImpl.java +++ b/src/main/java/com/eactive/eai/rms/common/scheduler/EMSSchedulerImpl.java @@ -141,6 +141,16 @@ public class EMSSchedulerImpl implements EMSScheduler { JobDetail existingJob = clusteredScheduler.getJobDetail(jobKey); if (existing != null && existingJob != null) { + // JobDetail(JobData 포함) 갱신 + @SuppressWarnings("unchecked") + Class jobClass = (Class) Class.forName(jobInfo.getJobClassName()); + JobBuilder jobBuilder = newJob(jobClass).withIdentity(jobKey); + for (JobData jobData : jobInfo.getJobDatas()) { + jobBuilder.usingJobData(jobData.getId().getDataKey(), jobData.getDataValue()); + } + clusteredScheduler.addJob(jobBuilder.build(), true); + + // 트리거(cron) 갱신 CronTrigger newTrigger = newTrigger() .withIdentity(triggerKey) .withSchedule(cronSchedule(jobInfo.getCronExp()))