springboot 使用quartz+XML格式处理定时任务

 

  网上查了许多关于springboot与quartz资料,发现使用XML配置的很少,简单整理了下,算是定时任务入门参考吧。

  • 在pom.xml文件中,添加配置
       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-quartz</artifactId>
        </dependency>

 

  • 创建任务定时处理类 SysDataJob
复制代码
package service;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Service;

@Service
public class SysDataJob  {
    private final Log log = LogFactory.getLog(SysDataJob.class);

    public void deleteInfo() {
        log.info("Job start");
        System.out.println("Job 数据处理");
    }

}
复制代码

 

  • 在resources文件下,创建quartz-config.xml
复制代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--定时删除数据库数据任务-->
    <!-- 配置Job类 -->
    <bean id="sysDataJob" class="service.SysDataJob"></bean>
    <!-- 配置JobDetail -->
    <bean id="springQtzJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <!-- 执行目标job -->
        <property name="targetObject" ref="sysDataJob"></property>
        <!-- 要执行的方法 -->
        <property name="targetMethod" value="deleteInfo"></property>
        <property name="concurrent" value="false"></property><!--配置为false不允许任务并发执行-->
    </bean>
    <!-- 配置tirgger触发器 -->
    <bean id="cronTrigger1" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <!-- jobDetail -->
        <property name="jobDetail" ref="springQtzJob"></property>
        <!-- cron表达式,执行时间每10秒执行一次 -->
        <!-- 可以根据自己的需求指定执行时间 -->
        <property name="cronExpression" value="0/10 0/1 0/1 * * ? "></property>
    </bean>
    <!-- 配置调度工厂 -->
    <bean id="springJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="cronTrigger1"></ref>
                <!-- <ref bean="cronTrigger2"></ref>-->
            </list>
        </property>

    </bean>
</beans>
复制代码

在应用程序启动时,添加注解,指定xml路径 @ImportResource("classpath:quartz-config.xml")

复制代码
package com.howdy.quartzsimple;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;

@SpringBootApplication
@ImportResource("classpath:quartz-config.xml")
public class QuartzSimpleApplication {

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

}
复制代码
  • 完整的目录结构,最后打印日志,是每10秒执行一次

    源码下载:https://download.csdn.net/download/haojuntu/13184110

 

posted @   低调码农哥!  阅读(1171)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示