Dev's/Web

[Dev's] 스프링 스케쥴러 설정 시, 변수값 넣어서 동적생성하기

rookas89 2022. 1. 6. 16:35
728x90

 

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 라는 태그로 설정된 값을 읽어온다.

이걸 이용하면 동적 분기처리가 가능하다.

 

728x90