《SpringBoot整合QuartZ 实现定时任务调用》

一、SpringBoot整合QuartZ实现简单的定时任务demo

1.介绍:

定时任务调度是Java开发中不可或缺的重要部分,但是Java自带的Time等任务调度类在实际项目中不好用。所以Quartz和Spring Task就成了我们项目开发技术选型最多的,在这里我们着重探讨一下Quartz在Spring Boot 2.X版本中的使用。

2.QuartZ设计架构:

  1. 介绍:
    1. Job - 任务
    2. JobDetail - 任务描述
    3. Trigger - 触发器r
    4. Scheduler - 任务调度器
  2. 图示:
    在这里插入图片描述
    多个定时任务的图示:

在这里插入图片描述

3. code

1.pom依赖:

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

2.job

public class jobDemo1 extends QuartzJobBean {

    @Override
    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        //获取JobDetail中关联的数据
        String msg = (String) jobExecutionContext.getJobDetail().getJobDataMap().get("msg");
        System.out.println("current time :"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "---" + msg);
    }
}

3.config
在这里插入图片描述

@Configuration
public class QuartzConfig {
   @Bean
   public JobDetail testJobDetail(){
       //jobDemo1我们的业务类
       return JobBuilder.newJob(jobDemo1.class)
               //可以给该JobDetail起一个id
               .withIdentity("JobDetaildemo1")
               //每个JobDetail内都有一个Map,包含了关联到这个Job的数据,在Job类中可以通过context获取
               //关联键值对
               .usingJobData("msg", "Hello Quartz")
               //即使没有Trigger关联时,也不需要删除该JobDetail
               .storeDurably()
               .build();
   }
   @Bean
   public Trigger printTimeJobTrigger() {
       //cron表达式
       CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0/1 * * * * ?");
       return TriggerBuilder.newTrigger()
               //关联上述的JobDetail
               .forJob(testJobDetail())
               //给Trigger起个名字
               .withIdentity("quartzTaskServicedemo1")
               //绑定调度器
               .withSchedule(cronScheduleBuilder)
               .build();
   }
}

二、总结:

  1. 任务调度器有两种设置方式:
    在这里插入图片描述
  • simpleSchedule() - 通过设置属性的方式。
  • cronSchedule(String cron) - 通过一个cron定时任务表达式来设置。
  1. Spring Boot集成quartz还是比较简单的。
    其实还有更高级的用法,就是前台动态创建和控制定时任务。
    大家先把这种最简单的基本用法熟练掌握。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值