JAVA | Spring + quartz 实现定时任务

简介: 很久不见,因为忙着泡妞,断更了一个月,实在是罪过。废话不多说,最近在工作中遇到了使用 quartz 实现定时任务的需求。写出来分享给大家,权当笔记。

Spring + quartz 实现定时任务


因为在开发中遇到的是非 Maven 的老项目,所以先介绍这种方式。这种实现方式更多的是 xml 的配置。


  1. 首先在 lib 目录下加入 quartz 这l两个jar包


640.png


  1. Scheduler(任务调度器)的配置


在 applicationContext.xml 加入 Scheduler 的配置

<bean id="MyScheduler"
        class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
        <list>
            <ref bean="MyTriggers"></ref>
        </list>
    </property>
    <property name="autoStartup" value="true"></property>
</bean>


  1. Trigger(触发器)的配置,这里设置了逢5分钟的倍数执行一次


<bean id="MyTriggers"
        class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    <property name="jobDetail" ref="MyJobDetail"></property>
    <property name="cronExpression">
        <!--<value>0 */1 * * * ?</value>-->
        <!--<value>0 */5 * * * ?</value>-->
        <!-- 早上八点执行 -->
        <!--<value>0 0 8 * * ?</value>-->
        <!-- 逢5分钟的倍数执行一次 -->
        <value>0 */5 * * * ?</value>
    </property>
</bean>


  1. JobDetail(任务,即被调度的任务)的配置


<bean id="MyJobDetail"
        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <!-- 执行的类 -->
    <property name="targetObject" ref="MyJobService"></property>
        <!-- 类中的方法 -->
    <property name="targetMethod" value="doSomething"></property>
    <property name="concurrent" value="false"/>
    <!-- 是否允许任务并发执行。当值为false时,表示必须等到前一个线程处理完毕后才再启一个新的线程 -->
</bean>


  1. 业务类的配置


<bean id="oltJobService" class="com.nasus.service.quartz.MyJobService">
    <property name="MyDao" ref="MyDao" />
        <!-- 注入属性 -->
</bean>


  1. 业务实现


import java.util.Date;
public class MyJobService {
    public void doSomething() {
        System.out.println("date: " + new Date().getTime());
    }
}


  1. 启动项目就可以看到控制台每隔五分钟就打印一次当前时间


后语


以上就是我对自学Java的几点建议,希望对你们有帮助。最后,对 Python 、Java 感兴趣请长按二维码关注一波,我会努力带给你们价值,如果觉得本文对你哪怕有一丁点帮助,请帮忙点个赞。

相关文章
|
4天前
|
存储 监控 数据可视化
SaaS云计算技术的智慧工地源码,基于Java+Spring Cloud框架开发
智慧工地源码基于微服务+Java+Spring Cloud +UniApp +MySql架构,利用传感器、监控摄像头、AI、大数据等技术,实现施工现场的实时监测、数据分析与智能决策。平台涵盖人员、车辆、视频监控、施工质量、设备、环境和能耗管理七大维度,提供可视化管理、智能化报警、移动智能办公及分布计算存储等功能,全面提升工地的安全性、效率和质量。
|
8天前
|
人工智能 Java API
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
|
10天前
|
人工智能 Java API
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
|
12天前
|
监控 前端开发 Java
构建高效Java后端与前端交互的定时任务调度系统
通过以上步骤,我们构建了一个高效的Java后端与前端交互的定时任务调度系统。该系统使用Spring Boot作为后端框架,Quartz作为任务调度器,并通过前端界面实现用户交互。此系统可以应用于各种需要定时任务调度的业务场景,如数据同步、报告生成和系统监控等。
35 9
|
13天前
|
人工智能 Java API
Java也能快速搭建AI应用?一文带你玩转Spring AI可落地性
Java语言凭借其成熟的生态与解决方案,特别是通过 Spring AI 框架,正迅速成为 AI 应用开发的新选择。本文将探讨如何利用 Spring AI Alibaba 构建在线聊天 AI 应用,并实现对其性能的全面可观测性。
119 11
|
1月前
|
安全 Java 调度
Java中简单定时任务的实现
在 Java 中实现定时任务有多种方式,每种方式的原理和适用场景不同。`java.util.Timer` 和 `TimerTask` 通过单线程执行任务,适合简单场景;`ScheduledExecutorService` 基于线程池,支持多线程并发,更加灵活和健壮;三种方式各有优劣,开发者可根据需求选择合适的方案。
|
1月前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
66 7
|
2月前
|
存储 NoSQL Java
使用Java和Spring Data构建数据访问层
本文介绍了如何使用 Java 和 Spring Data 构建数据访问层的完整过程。通过创建实体类、存储库接口、服务类和控制器类,实现了对数据库的基本操作。这种方法不仅简化了数据访问层的开发,还提高了代码的可维护性和可读性。通过合理使用 Spring Data 提供的功能,可以大幅提升开发效率。
75 21
|
2月前
|
Java 调度 Spring
Spring之定时任务基本使用篇
本文介绍了在Spring Boot项目中使用定时任务的基本方法。主要通过`@Scheduled`注解实现,需添加`@EnableScheduling`开启定时任务功能。文中详细解析了Cron表达式的语法及常见实例,如每秒、每天特定时间执行等。此外,还探讨了多个定时任务的执行方式(并行或串行)及其潜在问题,并留待后续深入讨论。
115 64
|
2月前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
111 7