定时任务组件Quartz

发布于:2023-01-16 ⋅ 阅读:(572) ⋅ 点赞:(0)

Quartz组件

1.Quartz的介绍

在这里插入图片描述
官网:http://www.quartz-scheduler.org/

2.Quartz框架的使用思路

  1. job - 任务 - 你要做什么事?
  2. Trigger - 触发器 - 你什么时候去做?
  3. Scheduler - 任务调度 - 你什么时候需要去做什么事?
    在这里插入图片描述

3.SpringBoot整合Quartz框架

3.1添加Quartz依赖:

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

3.2自定义一个job

@Component
public class QuartzDemo{
    @Override
    public void printTime() throws JobExecutionException {
        System.out.println("现在时刻:"+new Date());
    }
}

3.3编写quartz配置类

@Configuration
public class QuartzConfig {

    @Bean//job:干什么事
    public MethodInvokingJobDetailFactoryBean methodInvokingJobDetailFactoryBean(
            QuartzDemo quartzDemo){
        MethodInvokingJobDetailFactoryBean JobDetailFactoryBean = new 
            MethodInvokingJobDetailFactoryBean();
        JobDetailFactoryBean.setTargetObject(clearImgJob);
        JobDetailFactoryBean.setTargetMethod("printTime");
        return JobDetailFactoryBean;
    }

    @Bean//trigger:什么时候
    public CronTriggerFactoryBean cronTriggerFactoryBean(
        MethodInvokingJobDetailFactoryBean JobDetailFactoryBean){
        CronTriggerFactoryBean triggerFactoryBean = new CronTriggerFactoryBean();
        triggerFactoryBean.setCronExpression("0/1 * * * * ?");
        triggerFactoryBean.setJobDetail(JobDetailFactoryBean.getObject());
        return triggerFactoryBean;
    }

    @Bean//scheduler:什么时候干什么事
    public SchedulerFactoryBean schedulerFactoryBean(
        CronTriggerFactoryBean triggerFactoryBean){
        SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
        schedulerFactoryBean.setTriggers(triggerFactoryBean.getObject());
        return schedulerFactoryBean;
    }
}

3.4编写启动类

@SpringBootApplication
public class QuartzTestApp {

    public static void main(String[] args) {
        SpringApplication.run(QuartzTestApp.class,args);
    }
}

3.5测试

此时跑起来就可以看见控制台在输出 现在的时间


网站公告

今日签到

点亮在社区的每一天
去签到