SpringBoot 定时调度集成Quartz

定时调度集成Quartz

能够定时调用某种方法,实现定时推送的功能。

    Scheduler:任务调度器,所有的任务都是从这里开始。 Trigger:触发器,定义任务执行的方式、间隔。 JobDetail & Job : 定义任务具体执行的逻辑。

添加依赖pom.xml

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

jobs/MyFirstJob.java

定义任务具体执行的逻辑。

public class MyFirstJob implements Job {
          
   

    private Logger log = LoggerFactory.getLogger(MyFirstJob.class);

    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
          
   
        //需要执行的方法
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        log.info(sdf.format(new Date()) + "-->" + "Hello Spring Boot Quartz...");
    }
}

jobs/QuartzConfig.java

@Configuration
public class QuartzConfig {
          
   

    //对象方法构建对象存入beanFactory
    //任务调度器,所有的任务都是从这里开始。
    @Bean
    public JobDetail jobDetail(){
          
   
        return JobBuilder.newJob(MyFirstJob.class).storeDurably().build();
    }

    // 每5秒触发⼀次任务
    //触发器,定义任务执行的方式、间隔。
    @Bean
    public Trigger trigger(){
          
   
        return TriggerBuilder.newTrigger()
                //设置任务的种类 与及名字
                .withIdentity("trigger2", "group1")
                //设置执行的属性 时间属性
                .withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ? *"))
                        .forJob(jobDetail())
                        .build();
    }
}
经验分享 程序员 微信小程序 职场和发展