최근에 많은 이메일을 받았습니다. 모두 Spring Boot가 쿼츠를 통합하여 여러 타이밍 작업을 구현하는 방법을 알고 싶어합니다. 생산에 여러 타이밍 작업을 사용하지 않기 때문에 구현에 대한 아이디어를 제공 할 것입니다.
1. 다음과 같이 두 가지 새로운 타이밍 작업을 만듭니다.
공개 클래스 ScheduledJob는 작업 {@override public void execute (jobExecutionContext Context) jobExecutionException {System.out.println ( "Schedule Job1이 실행 중입니다 …………………………………………………………………… }} public class scheduledjob2 작업 {@override public void execute (jobExecutionContext Context) jobExecutionException {System.out.println ( "Schedule Job2가 실행 중입니다 ……………………………………………… }}2. 위의 두 작업을 구성하십시오
@component public class scheduleralljob {@autowired private schedulerfactorybean schedulerfactorybean; /** 여기에서 모든 작업 구성을 쿼리하기 위해 데이터베이스 작업을 주입 할 수 있습니다.*// ***이 메소드는 모든 시간이 지정된 작업을 시작하는 데 사용됩니다* @throws schedulerexception*/ public void schedulejobs () schedulerexception {scheduler scheduler = scheduleractorybean.getscheduler (); / ** * */ schedulejob1 (스케줄러); ScheduleJOB2 (스케줄러); }/** * 구성 1 * 여기서 작업은 속성 또는 데이터베이스에 구성 및 배치 할 수 있습니다.이 시점에서 동적 타이밍 작업을 수행 해야하는 경우 다음을 참조하십시오. @throws schedulerexception * / private void schedulejob1 (스케줄러 스케줄러)은 SchedulerException을 던지려면 { / * * 여기에서 데이터베이스를 먼저 작업 이름으로 쿼리 할 수 있습니다. 작업이 데이터베이스에 존재하는 경우 작업 구성을 업데이트하고 SchedulerEfreshDatabase 클래스의 메소드에 따라 트리거를 트리거합니다. *이 시간에 데이터베이스에 작업이 쿼리되지 않은 경우 아래 단계를 따라 새 작업을 작성하고 초기화 매개 변수를 구성하고 구성을 구성하고 구성을 구성합니다. .withidentity ( "job1", "Group1"). build (); // CronscheduleBuilder ScheduleBuilder = CronscheduleBuilder.cronschedule ( "0/5 * * *?"); crontrigger crontrigger = triggerBuilder.newtrigger (). withidentity ( "trigger1", "group1"). Scheduler.schedulejob (JobDetail, Crontrigger); } / ** * 작업 구성 * @param scheduler * @throws schedulerexception * / private void schedulejob2 (스케줄러 스케줄러)는 schedulerexception {jobDetail jobDetail = jobBuilder.newjob (scheduledjob2.class) .withIdentity ( "group1")를 던졌습니다. CronscheduleBuilder ScheduleBuilder = CronscheduleBuilder.cronschedule ( "0/10 * * * *?"); // crontrigger는 10 초마다 실행됩니다. crontrigger = triggerbuilder.newtrigger (). withidentity ( "trigger2", "group1"). Scheduler.schedulejob (JobDetail, Crontrigger); }}3. 두 가지 작업을 시작하십시오
@Configuration @Compontor Public Class SchedulerListener {@autowired public scheduleralljob myscheduler; /** * 스타트 업 에서이 메소드를 실행하거나 ApplicationListener를 사용하여 시작에서 메소드를 실행하여 특정 사용을 참조하십시오. http://blog.csdn.net/liuchuanhong1/article/details/77568187 * @throws schedulexception */@scheduled (cron =) 08 18? schedulerexception {myscheduler.schedulejobs (); } @bean public schedulerFactoryBean schedulerFactoryBean () {schedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean (); 반환 SchedulerFactoryBean; }}4. 테스트 결과는 다음과 같습니다
Job1이 실행 중입니다 …………………………………………… Job1은 실행 중입니다 ……………………………………………………………… 달리기……………………………………………………………………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.