SpringBoot&Quartz

本文介绍了两种在SpringBoot中实现定时任务的方法:集成Quartz和使用SpringBoot内置的@Scheduled注解。通过示例代码详细展示了如何配置Quartz Job和Trigger,以及如何编写和启动@Scheduled任务。这两种方式为开发者提供了灵活的定时任务管理选择。
摘要由CSDN通过智能技术生成

SpringBoot定时任务实现方式

一、SpringBoot集成Quartz

步骤:

  • 导入坐标
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
  • 继承QuartzJobBean,开发业务代码
/*
* 继承QuartzJobBean抽象类,实现executeInternal方法
* */
public class MyQuartz extends QuartzJobBean {
    @Override
    public void executeInternal(JobExecutionContext context) throws JobExecutionException {
        System.out.println(context.getJobDetail().getDescription()+"quartz task running....");
    }
}
  • 创建配置类
@Configuration
public class QuartzConfig {
    @Bean
    public JobDetail getJobDetail(){
        //绑定具体的工作
        return JobBuilder.newJob(MyQuartz.class).withIdentity("task1","group1").withDescription("第一个定时任务").storeDurably().build();
    }

    @Bean
    public Trigger printJobTrigger(){
        //CronScheduleBuilder 表达式构建器
        ScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0/15 * * * * ?");
        //触发器,触发定时任务
        return TriggerBuilder.newTrigger().forJob(getJobDetail()).withIdentity("task1").withSchedule(scheduleBuilder).build();
    }
}

执行结果

第一个定时任务quartz task running…

二、SpringBoot自带定时任务

编写定时任务,并设定定时任务执行时间

@Component
public class MyBean {

    @Scheduled(cron = "0/5 * * * * ?")
    public void print(){
        System.out.println(Thread.currentThread().getName()+"  spring task run....");
    }
}

开启定时任务

@SpringBootApplication
//开启定时任务功能
@EnableScheduling
public class SpringApplicationApp {
    public static void main(String[] args) {
        SpringApplication.run(SpringApplicationApp.class,args);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值