springboot整合quartz实现多个定时任务

该文章介绍了如何在SpringBoot应用中集成Quartz框架来创建和配置多个定时任务。作者创建了两个任务,分别是MyIncomeInformationTask和MyIncomeInformationTask2,每个任务都有其特定的执行间隔,任务1每两秒执行一次,任务2每五秒执行一次。配置文件QuartzConfig中定义了任务详情和触发器,并强调了配置类需要在Spring容器扫描范围内以确保任务生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近公司新增业务需要用到多个定时任务,特意在此记录

1、导入包

 <!--引入quartz定时框架-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-quartz</artifactId>
        </dependency>

2、新建2个定时任务。

  • 定时任务1
public class MyIncomeInformationTask extends QuartzJobBean {
    @Override
    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println(" 定时任务1 " );
    }
}
  • 定时任务2
public class MyIncomeInformationTask2 extends QuartzJobBean {
    @Override
    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println(" 定时任务2 " );
    }
}

3、配置文件QuartzConfig2

@Configuration
public class QuartzConfig {
    /*============================================================定时任务配置1============================================================*/
    //指定具体的定时任务类
    @Bean
    public JobDetail uploadTaskDetail() {
        return JobBuilder.newJob(MyIncomeInformationTask.class).withIdentity("MyHkInformationTask").storeDurably().build();
    }
    //配置触发器
    @Bean
    public Trigger uploadTaskTrigger() {
        //TODO 这里设定执行方式
        //每两秒执行一次
        CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0/2 * * * * ?");
        return TriggerBuilder.newTrigger().forJob(uploadTaskDetail())
                .withIdentity("MyHkInformationTask")
                .withSchedule(scheduleBuilder)
                .build();
    }
    /*============================================================定时任务配置1============================================================*/
    /*============================================================定时任务配置2============================================================*/
    //指定具体的定时任务类
    @Bean
    public JobDetail uploadTaskDetail2() {
        return JobBuilder.newJob(MyIncomeInformationTask2.class).withIdentity("MyHkInformationTask2").storeDurably().build();
    }
    //配置触发器
    @Bean
    public Trigger uploadTaskTrigger2() {
        //TODO 这里设定执行方式
        //每五秒执行一次
        CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0/5 * * * * ?");
        return TriggerBuilder.newTrigger().forJob(uploadTaskDetail2())
                .withIdentity("MyHkInformationTask2")
                .withSchedule(scheduleBuilder)
                .build();
    }
    /*============================================================定时任务配置2============================================================*/
}

4、启动项目运行
在这里插入图片描述
注意!注意!注意!
QuartzConfig所在类的包一定要被spring容器扫描到,否则定时任务不会生效。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一叶飘零晋

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

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

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

打赏作者

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

抵扣说明:

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

余额充值