SpringBoot2.x整合quartz實現多任務定時執行


一、pom文件中導入相關依賴

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-quartz</artifactId>
        </dependency>

二、分別編寫任務代碼類

/**
 * 任務一
 */
public class MyQuartzJob extends QuartzJobBean {

    @Override
    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("talk is cheap.");
    }
}
/**
 * 任務二
 */
public class MyQuartzJob1 extends QuartzJobBean {

    @Override
    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("show me the code");
    }
}

三、分別編寫相關的scheduler類(也可以寫在一個類里)

/**
 * Scheduler來調度Trigger和JobDetil
 * JobDetail來實例化Job類並可以傳值
 */
@Configuration
public class MyScheduler {

    @Bean(name = "JobDetail")
    public JobDetail simpleJobDetail(){

        JobDetail jobDetail = JobBuilder.newJob(MyQuartzJob.class).withIdentity("eclipse")
                .usingJobData("key","value").storeDurably().build();
        return jobDetail;
    }

    @Bean(name = "trigger")
    public Trigger simpleJobTrigger(){

        SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(4).repeatForever();

        return TriggerBuilder.newTrigger().forJob(simpleJobDetail())
                .withIdentity("sampleTrigger").withSchedule(scheduleBuilder).build();
    }
}
@Configuration
public class MyScheduler1 {

    @Bean(name = "JobDetail1")
    public JobDetail simpleJobDetail1(){

        JobDetail jobDetail = JobBuilder.newJob(MyQuartzJob1.class).withIdentity("eclipse1")
                .usingJobData("key","value").storeDurably().build();
        return jobDetail;
    }

    @Bean(name = "trigger1")
    public Trigger simpleJobTrigger1(){

        SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(6).repeatForever();

        return TriggerBuilder.newTrigger().forJob(simpleJobDetail1())
                .withIdentity("sampleTrigger1").withSchedule(scheduleBuilder).build();
    }
}

四、啟動springboot即可查看任務執行情況

  具體的執行時間可以自己設置:這里分別是4秒和6秒:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM