SpringBoot简单整合Quartz实现定时任务

Quartz

        Quartz是一个定时任务框架。这里要介绍一下Quartz里的几个非常核心的接口。

Scheduler接口

        Scheduler翻译成调度器,Quartz通过调度器来注册、暂停、删除Trigger和JobDetail。Scheduler还拥有一个SchedulerContext,顾名思义就是上下文,通过SchedulerContext我们可以获取到触发器和任务的一些信息。

Trigger接口

        Trigger可以翻译成触发器,通过cron表达式或是SimpleScheduleBuilder等类,指定任务执行的周期。系统时间走到触发器指定的时间的时候,触发器就会触发任务的执行。

JobDetail接口

        Job接口是真正需要执行的任务。JobDetail接口相当于将Job接口包装了一下,Trigger和Scheduler实际用到的都是JobDetail。

整合过程

        引入依赖

        Gradle

    implementation 'org.springframework.boot:spring-boot-starter-quartz'

        maven

<!-- SpringBoot 整合 Quartz 定时任务 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

TimingTask

         创建TimingTask类,并继承 QuartzJobBean 类,重写 void executeInternal(JobExecutionContext jobExecutionContext) 方法

public class TimingTask extends QuartzJobBean {

    @Override
    protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
        System.out.println("定时任务开始了......");
    }

}

QuartzConfig

        创建 Quartz定时任务配置类(QuartzConfig.java),添加 @Configuration 注解表示为配置类,并编写相关配置信息,设置每24小时执行一次

@Configuration
public class QuartzConfig {

    private static final String SEARCH_TASK_IDENTITY = "TaskQuartz";

    @Bean
    public JobDetail quartzDetail() {
        return JobBuilder.newJob(TimingTask.class).withIdentity(SEARCH_TASK_IDENTITY).storeDurably().build();
    }

    @Bean
    public Trigger quartzTrigger() {
        //每24小时执行一次
        SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule()
//                .withIntervalInSeconds(120) //设置时间周期单位秒
                .withIntervalInHours(24) //24个小时执行一次
                .repeatForever();
        return TriggerBuilder.newTrigger().forJob(quartzDetail())
                .withIdentity(SEARCH_TASK_IDENTITY)
                .withSchedule(scheduleBuilder)
                .build();
    }


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

像向日葵一样~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值