스프링 스케쥴러 설정 시, 변수값 넣어서 동적생성하기
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
JobDataMap jdm = new JobDataMap();
jdm.put("test", "변수값넣기");
JobDetail jobDetail = newJob(jobTarget.class)
.withIdentity("jobName", "jobGroup")
.usingJobData(jdm)
.build();
Trigger trigger = newTrigger()
.withIdentity("jobName", "jobGroup")
.withSchedule(cronSchedule("0/5 * * * * ?"))
.build();
scheduler.start();
scheduler.scheduleJob(jobDetail, trigger);
동적으로 스케쥴을 동작시키고자 할 경우 사용한다.
스케쥴을 동작시킬곳에 위 코드를 넣는다.
public class JobTarget implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("--------------youtubeScheduler execute Started!---------------------");
// TODO Auto-generated method stub
String test = context.getJobDetail().getJobDataMap().get("test").toString();
System.out.println("test ---> " + test);
}
}
test 라는 태그로 설정된 값을 읽어온다.
이걸 이용하면 동적 분기처리가 가능하다.