springboot+quartz執行一個或者多個任務的通用配置

1.pom:

<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.2.3</version>
</dependency>
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz-jobs</artifactId>
    <version>2.2.3</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
</dependency>

2. 任務執行類

public class CheckStatusTask2 implements Job {
    public void execute(JobExecutionContext context) throws JobExecutionException {
        // 定時任務邏輯
        System.out.println("開始執行定時任務2............."+new Date());
    }
}

3.配置定時任務(跟xml配置文件差不多,換了換模式而已)

@Configuration
public class QuartzConfig2 {

    @Bean(name="jobDetailFirst")
    public JobDetailFactoryBean jobDetailFirst(){
        JobDetailFactoryBean factory=new JobDetailFactoryBean();
        factory.setJobClass(CheckStatusTask2.class);
        return  factory;
    }

    @Bean(name="cronTriggerFirst")
    public CronTriggerFactoryBean cronTriggerFirst(@Qualifier("jobDetailFirst")JobDetailFactoryBean jobDetailFirst){
        CronTriggerFactoryBean factory=new CronTriggerFactoryBean();
        factory.setJobDetail(jobDetailFirst.getObject());
        factory.setCronExpression("0/6 * * * * ?");
        return factory;
    }

    @Bean(name="jobDetailSecond")
    public JobDetailFactoryBean jobDetailSecond(){
        JobDetailFactoryBean factory=new JobDetailFactoryBean();
        factory.setJobClass(CheckStatusTask3.class);
        return  factory;
    }

    @Bean(name="cronTriggerSecond")
    public CronTriggerFactoryBean cronTriggerSecond(@Qualifier("jobDetailSecond")JobDetailFactoryBean jobDetailSecond){
        CronTriggerFactoryBean factory=new CronTriggerFactoryBean();
        factory.setJobDetail(jobDetailSecond.getObject());
        factory.setCronExpression("0/2 * * * * ?");
        return factory;
    }

    @Bean(name="scheduler")
    public SchedulerFactoryBean schedulerFactoryBean(@Qualifier("cronTriggerFirst")CronTriggerFactoryBean cronTriggerFirst,
                                                     @Qualifier("cronTriggerSecond")CronTriggerFactoryBean cronTriggerSecond){
        SchedulerFactoryBean factory=new SchedulerFactoryBean();
        factory.setTriggers(cronTriggerFirst.getObject(),cronTriggerSecond.getObject());
        return factory;
    }


}

 

截圖展示

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章