java-Spring集成定时器使用方法

news2025/1/16 13:51:22

文章目录

    • 定时器配置文件
      • 测试文件
    • 配置参数说明
    • SpringBoot集成schedule
      • pom.xml文件
      • 启动类
      • 运行结果

定时器配置文件

  • spring核心配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:beans="http://www.springframework.org/schema/beans"
             xmlns:task="http://www.springframework.org/schema/task"
             xmlns:p="http://www.springframework.org/schema/p"
             xmlns:util="http://www.springframework.org/schema/util"
             xsi:schemaLocation="
		http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">

    <beans:bean id="appConversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"/>

    <beans:import resource="classpath*:spring-quarz.xml"/>

</beans:beans>

  • 定时器任务配置文件
<?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-3.0.xsd">

    <bean id="testObj" class="com.it.test"></bean>

    <bean id="test" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="name" >
            <ref bean="testObj"/>
        </property>
        <property name="targetMethod" value="doJob"></property>
    </bean>

    <bean id="test2" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail">
            <ref bean="test"/>
        </property>
        <property name="cronExpression">
            <value>0 0/5 * * * ?</value>
        </property>
    </bean>
</beans>

测试文件

package com.it;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @BelongsProject: Demo
 * @BelongsPackage: com.it
 * @CreateTime: 2023/1/12 11:30
 * @author: 
 * @version: 1.0
 */
@Component
public class test {
    @Scheduled(cron = "0/10 * * * * *")
    public void doJob(){
        System.out.println("--------------");
        System.out.println("当前时间:"+new Date());
        System.out.println("==============");
    }
}
  • 参数说明

@Scheduled(cron = “0/10 * * * * *”)

cron :对应的位置分别是秒 分 时 天 月 年 上述实现的是没个10秒执行一次

配置参数说明

,:与,表式",“两边的值都是需要执行的时间,如上例"5,20”,每个月的5日与20日。
-:表示值的范围,如上例"8-10",从8点开始到10结束,包括8点与10点。
*:表式任意可合法的值,如上例"*“是处于月份的字段,所以代表1-12中的任意值,所以上例是指“每个月”。
/:增量,如上例是指从0分开始,每过30分钟取一次值。如果换成"5/8"就是从第5钟开始每过8分钟取一次值:8:05,8:13,8:21,8:29等等
?:不指定值,就是“我也不知道”的意思,只能出现在“月的某天,星期的某天”项中。在什么情况下用呢?如上例如果指定值为星期一,那么可能会出现如4月5日不是星期一,这里就是不对应,有冲突,所以指定为”?“,也就是说我也不知道是星期几,只要是5日与20日就行了,至于是星期几我才不管呢!
L:最后的,last的意思,只能出现在“月的某天,星期的某天”项中。表示当前月或当前星期的最后一天,注意的是星期的最后一天为星期六。
W:月中最接近指定日期的普通日(星期一到星期五),只能出现在“月的某天”,如"15W"就是说当前月最接近15日的普通日,如果当月的15是星期三就是星期三,如果当月的15是星期六那么就是昨天也就是星期五,如果当月的15是星期天则为第二天也就是星期一。
#:当前月的第N个星期X日,只能出现在“星期的某天”项中。如"6#3"就是说当前月的第三个星期五,注意"1-7”,1=星期天,2=星期一 等等。

SpringBoot集成schedule

pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.it</groupId>
    <artifactId>schedule_test</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <version>2.7.7</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-quartz</artifactId>
            <version>2.7.7</version>
        </dependency>
    </dependencies>

</project>

启动类

package com.it;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

/**
 * @BelongsProject: Demo
 * @BelongsPackage: com.it
 * @CreateTime: 2023/1/12 13:09
 * @author: 
 * @version: 1.0
 */
@SpringBootApplication
@EnableScheduling
public class SpringbootApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringbootApplication.class,args);
    }
}

运行结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/158947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python笔记之转义问题 字符串前缀 正则表达式

Python的字符串自己也用\转义 s ABC\\-001 # Python的字符串 # 对应的正则表达式字符串变成&#xff1a; # ABC\-001建议使用Python的r前缀&#xff0c;就不用考虑转义的问题了 s rABC\-001 # Python的字符串 # 对应的正则表达式字符串不变&#xff1a; # ABC\-001关于斜杠…

RGB、LVDS、MIPI和EDP接口液晶屏

RGB、LVDS、MIPI和EDP接口液晶屏概述一、RGB_TTL二、LVDS三、MIPI&#xff08;手机、平板等数码产品应用场合&#xff09;四、eDP接口&#xff08;笔记本、工控机、工业平板等应用场合&#xff0c;用来取代LVDS接口&#xff09;五、应用概述 液晶屏有RGB、LVDS、MIPI DSI和EDP等…

《MYSQL实战45讲》笔记(1-10)

1&#xff1a;一条SQL查询语句是如何执行的&#xff1f; 下面我们来结合一张图来了解MySQL的基本架构 总体来看&#xff0c;MySQL分为服务层和存储引擎两个部分。其中存储引擎负责数据的存储和提取&#xff0c;而服务层负责连接的建立、分析、优化、执行等其他步骤。 常见的…

虚幻引擎中GPU Lightmass全局光照的使用步骤

GPU Lightmass (GPULM) 是一种光烘焙方法&#xff0c;它预先计算来自具有 Stationary 或 Static 移动性的灯光的复杂光交互&#xff0c;并将该数据存储在创建的应用于场景几何体的光照贴图纹理中。GPU Lightmass 显着减少了为复杂场景计算、构建和生成光照数据所需的时间&#…

MQTT QoS 0, 1, 2 介绍

什么是 QoS 很多时候&#xff0c;使用 MQTT 协议的设备都运行在网络受限的环境下&#xff0c;而只依靠底层的 TCP 传输协议&#xff0c;并不能完全保证消息的可靠到达。因此&#xff0c;MQTT 提供了 QoS 机制&#xff0c;其核心是设计了多种消息交互机制来提供不同的服务质量&…

自监督学习之掩码自动编码器(Masked Autoencoders, MAE)——音频识别方面

自监督学习之掩码自动编码器(Masked Autoencoders, MAE)——音频识别方面 1.参考文献 《Masked Autoencoders that Listen》 2.背景 Transformers和self-supervised learning(自监督学习)占据了计算机视觉(Computer Vision,CV)和自然语言处理(natural language processing, …

百度工程师带你玩转正则

作者 | 向阳 导读 在很多技术领域&#xff0c;都有正则的身影。但许多像我一样的人&#xff0c;只闻其名。因此将正则常用知识汇总&#xff0c;便于查阅。正则表达式&#xff08;Regular Expression&#xff09;是用于描述一组字符串特征的模式&#xff0c;用来匹配特定的字符串…

机械--UG NX2007改变零件的默认颜色

UG&#xff08;现在的新版本叫NX&#xff0c;但一般人仍然沿用UG的叫法&#xff0c;下同&#xff09;&#xff0c;新建零件时&#xff0c;零件的默认颜色是橙色的&#xff0c;个人很不喜欢。 当然&#xff0c;实体化以后&#xff0c;可以改变它的颜色&#xff0c;选中实体以后…

傻瓜式裂变—竖屏视频超级原创,呆头鹅批量剪辑软件上万人使用

呆头鹅批量剪辑软件优势&#xff1a; 专业的技术开发团队&#xff0c;成熟的技术架构&#xff0c;完整的售后服务&#xff0c;我们为您解决所有的后顾之忧 .几乎涵盖市面上已知的所有剪辑功能.几乎涵盖市面上已知的所有剪辑功能.完成通知&#xff0c;运行间隔提醒&#xf…

201:vue+openlayers:加载geojson文件形成围栏,可添加、修改、删除feature,导出geojson

第201个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中实现围栏列表与图中feature双向互动功能。 利用GeoJSON().readFeatures获得到features,通过转换在地图上形成图形,通过新增、修改、删除feature,可以更改整体的features关系。点击导出可以将修改后的…

工厂安全着装识别检测算法 python

工厂安全着装识别检测算法通过Python基于YOLOv5技术&#xff0c;对现场画面中的人员着装穿戴进行实时分析检测自动抓拍存档告警。Python是一种由Guido van Rossum开发的通用编程语言&#xff0c;它很快就变得非常流行&#xff0c;主要是因为它的简单性和代码可读性。它使程序员…

现在才开始学测试晚了么

相信问这样问题的朋友&#xff0c;对软件测岗位存在着很深的误解。实际上&#xff0c;相对于其他的技术岗位来讲&#xff0c;软件测试入门可以说是相对简单的了&#xff0c;因此多晚学习都来得及。其次&#xff0c;这个行业的就业前景广阔&#xff0c;像测试主管、自动化架构师…

k8s之Service

写在前面 本文接k8s之DaemonSet 。 通过Deployment我们可以实现一直有指定个数的POD在运行&#xff0c;而通过DaemonSet可以实现在每个Node上都有一个POD在运行&#xff0c;不管是这两种方式中的哪一种&#xff0c;都是仅仅实现了有若干个POD在运行的效果&#xff0c;但是还无法…

【AdaBoost算法】

AdaBoost算法的原理介绍 AdaBoost算法核心思想 AdaBoost算法 (Adaptive Boosting) 是一种有效而实用的Boosting算法&#xff0c; 它以一种高度自适应的方法顺序地训练弱学习器。AdaBoost根据前一次的 分类效果调整数据的权重&#xff0c;上一个弱学习器中错误分类样本的权重会…

【MySQL】易忘易错函数和经典例题

目录一、函数1. UNION ALL 以及 UNIONUNION ALLUNION2. group_concat二、例题&#xff1a;1. 列转行2. 行转列3. 查找第N高的数据&#xff0c;没有则返回null一、函数 1. UNION ALL 以及 UNION union&#xff1a;对多个结果&#xff0c;去重排序 union all&#xff1a;对多个…

AB测试——原理介绍(中心极限定理、大数定理、假设检验、两类错误)

作为AB测试的学习记录&#xff0c;本文主要整理总结了AB测试背后的数学原理和一些概念解释。 1、控制变量法 基于控制变量法的思想&#xff0c;通过对比两组样本&#xff08;实验组和对照组&#xff09;的表现是否有差异&#xff0c;从而验证“变量”的作用。 借用中学生物课…

Linux常用命令——xauth命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) xauth 显示和编辑被用于连接X服务器的认证信息 补充说明 xauth命令用于显示和编辑被用于连接X服务器的认证信息。 语法 xauth(选项)(参数)选项 -f&#xff1a;不使用默认的认证文件&#xff0c;而使用指定的…

动手深度学习-线性神经网络:softmax回归

目录1.分类问题2. 网络架构3.softmax运算4. 损失函数交叉熵损失函数参考教程&#xff1a;https://courses.d2l.ai/zh-v2/ 1.分类问题 从回归到多类分类&#xff1a;对类别进行一位有效编码——独热编码&#xff08;one-hot encoding&#xff09;。 独热编码是一个向量&#x…

HTTP与HTTPS的区别,HTTPS提高性能,HTTP2的新特性

目录数据传输区别安全性区别端口区别交互区别HTTPS的工作流程HTTPS的实现原理机密性完整性身份认证和不可否认HTTPS 使用流程HTTPS性能优化点HTTP2的特性向下兼容HTTP/1头部压缩二进制虚拟流、多路复用数据传输区别 http也相当于HTTP协议&#xff0c;是超文本传输协议的意思&a…

PyQt6快速入门-多文档界面(MDI)

多文档界面(MDI) 文章目录 多文档界面(MDI)1、子窗口创建2、主窗口创建3、运行结果多文档界面(Multi Document Interface,MDI)是一种应用程序界面管理方法。MDI应用程序一般由一个主窗口和多个子窗口组成,这些子窗口在主窗口里显示,并共享主窗口的菜单栏,工具栏。在MDI应用…