Quartz 教程

工具篇-- 定时任务quartz 在项目开发中我们经常需要在某个特定的时间做业务处理,如发生生日祝福,除夕拜年短信等,那么就需要使用定时任务框架来解决;Quartz是一个功能丰富的开源任务调度库,用于在Java应用程序中进行任务调度。它提供了一种灵活而强大的方式来定义和安排任务的执行时间,支持周期性任务、延迟任务、固定间隔任务等。Quartz的特点和功能:灵活的任务调度:Quartz可以根据各种调度规则定义任务的执行时间,如固定延迟、固定间隔、Cron表达式等。可以轻松地创建简单或复杂的任务调度方案。 阅读详情

Quartz 介绍

一般用来 作业定时调度,比如 要在每周日 执行一次xx操作,就是后台启动一个线程。

与其他产品对比

从实现的技术上来分类,目前主要有三种技术(或者说有三种产品):

  • Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少,这篇文章将不做详细介绍。
  • 使用Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂,稍后会详细介绍。
  • Spring3.0以后自带的task,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多,稍后会介绍。

下载地址

这里写图片描述

这里写图片描述

Quartz 的核心接口及应用

Quartz 的核心接口 (常用)

这里写图片描述

核心接口之间的关系

这里写图片描述

Trigger

  • SimpleTrigger

    • 每一分中执行一次某一天执行,2016-06-01执行;

    • 这里写图片描述

  • ConTrigger
    • 完成更为复杂的触发 “每个月的最后一天执行
      每个月的第一个星期的第二天中午11:55分执行;
      每年的第二个月的第三个星期第四天晚上20:30分执行;”
    • 这里写图片描述
  • Cron Expressions
    • 用表达式表达程序的调度规则
    • 这里写图片描述

Quartz 简单案例

简单调度

Cron 表达式调度

Quartz 与 Spring 集成

创建一个简单的Job

... extends QuartzJobBean{

    @Override
    protected void executeInternal(JobExecutionContext context)
            throws JobExecutionException {
        System.out.println("Myjob 执行了..........."+context.getTrigger().getKey().getName());
        ApplicationContext applicationContext = (ApplicationContext)context
                .getJobDetail().getJobDataMap().get("adc");
        System.out.println(applicationContext);

        System.out.println("获取的Spring容器是:" + applicationContext);
        System.out.println("当前时间:"+new Date().toString());
    }

配置spring

    <bean name="myjobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
        <!-- 指定具体的job类 -->
        <property name="jobClass" value="com.lich.spring.MyJob" />
        <!-- 指定job的名称 -->
        <property name="name" value="myJob" />
        <!-- 指定job的分组 -->
        <property name="group" value="jobs" />
        <!-- 必须设置为true,如果为false,当没有活动的触发器与之关联时会在调度器中删除该任务  -->
        <property name="durability" value="true"/>
        <!-- 指定spring容器的key,如果不设定在job中的jobmap中是获取不到spring容器的 -->
        <property name="applicationContextJobDataKey" value="adc"/>
    </bean>

    <!-- 定义触发器 -->
    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="myjobDetail" />
        <!-- 每一分钟执行一次 -->
        <property name="cronExpression" value="*/5 * * * * ?" />
    </bean>

    <!-- 定义调度器 -->
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="cronTrigger" />
                <ref bean="cronTrigger1" />
            </list>
        </property>
    </bean>

加载spring容器

    public static void main(String[] args) {
        // 写对应的配置文件
        new ClassPathXmlApplicationContext("classpath:Spring.xml");
    }

输出 ↓

这里写图片描述

【Quartz】Quartz定时任务框架 Quartz是一个框架,是SpringBoot御用的定时任务框架,有三大核心部分组成,分别是JobTriggerScheduler。Job:任务,可以理解成你要做什么事,具体要执行的业务逻辑,比如:发送短信、同步数据、发送邮件等。Trigger:触发器,可以理解成你什么时候去做,用来定义Job触发条件、触发时间、触发间隔、终止时间等。Scheduler:调度器,可以理解成你什么时候要去做什么事,它会启动Trigger去执行Job。/*** @author : 黎剑。 阅读详情

相关推荐

【机器学习实战中阶】音乐流派分类-自动化分类不同音乐风格

数据下载地址:https://www.kaggle.com/datasets/andradaolteanu/gtzan-dataset-music-genre-classification/data背景音乐。专家们长期以来一直在尝试理解声音以及是什么使一首歌曲与另一首不同。如何可视化声音。是什么使一个音调与另一个不同。这个数据集希望能提供实现这些目标的机会。内容原始流派 - 包含10种流派,每种流派有100个音频文件,每个文件长度为30秒(著名的GTZAN数据集,声音的MNIST)

2145

java定时任务Quartz整理

Quartz介绍 quartz是一种基于java实现的任务调度框架,可以定时自动的执行你想要执行的任何任务。 quartz官网:http://www.quartz-scheduler.org/ Quartz的组成 任务Job(你要做什么事?) job就是你想要实现的任务类,每一个job必须实现org.quartz.job接口。 触发器Trigger(你什么时候去做?) Trigger为你执行任务的触发器,比如你想每天定时3点发送一份统计邮件,Trigger将会设置3点进行执行该任务。 .

weixin_42032770的博客 1万+

【3】Ubuntu18.04下载与安装,以及中文输入法的安装

Ubuntu18.04下载与安装一、下载二、安装(在VMware 16 pro中安装Ubuntu18.04)三、Ubuntu中安装中文输入法1.检查 fcitx 框架2.安装输入法 一、下载 下载地址:Ubuntu Releases 往下拉,找到自己需要的安装版本(建议不要安装最新版,因为你在使用时候遇到的错误大多都是以前版本的,最新版本的,解决方案特别少) 我这里安装的是Ubuntu18.04 一般都是使用desktop版本的(desktop版和server版本的区别:请看这篇文章) 之后点击下载即

斯基的朦胧 1万+

Quartz 定时任务

Quartz是一个定时任务调度框架;有三大核心部分组成,分别是Job,Trigger、Scheduler。。Job:任务,可以理解成你要做什么事,具体要执行的业务逻辑,比如:发送短信、同步数据、发送邮件等。JobDetail:基于Job,进一步包装,其中关联一个Job,并为Job指定更详细的属性,比如标识等,用于描述Job任务,(任务的名称、任务的分组) - ID。

qq_59308271的博客 6892

华为灵衢UB总线介绍

华为发布"灵衢"(UB)超节点互联协议,旨在构建支持AI大模型计算的基础设施。该协议采用统一内存语义和对等架构,使设备可直接访问远程内存,实现资源池化。技术突破包括2.1微秒超低时延和TB级带宽,支持64节点、52万张昇腾卡的集群互联。相比传统RDMA,"灵衢"更注重系统级资源调度,而非单纯数据传输。华为开放技术规范,推动生态建设,已有厂商开发兼容IP核。"灵衢"可适应x86、RISC-V等架构,未来将扩展至百万卡规模集群。

技术引领业务创新 4425

异次元发卡最新漏洞0day(XSS组合拳)

异次元商店头像上传处存在存储型XSS注入(user、admin均存在)。其中,user处有过滤,admin无。 将恶意脚本插入后,管理员访问用户管理页面即可执行恶意脚本。 恶意脚本执行后,会新增一个管理员用户,进而获得权限。鉴于漏洞还没有泛滥,而且很多站都有漏洞。EXP暂时不公开。需要学习可以加入知识星球

白昼小丑的博客 4592

【一】Quartz定时任务

对Quartz技术的基本介绍以及简单运用

mengyb个人文档记录 3400

GraphRAG深度解析:架构设计与实战案例

生成模块结合检索到的图数据和用户输入的查询,生成高质量的文本输出。通过结合图数据库中的知识,模型可以更准确地回答用户的问题,提供更优质的客户服务。通过分析用户的行为和偏好,结合图数据库中的知识,模型可以为用户提供个性化的推荐。:通过图数据库存储和检索结构化的知识,为语言模型提供丰富的背景信息,提升生成内容的质量和准确性。:选择合适的图数据库,如Neo4j、OrientDB等,以支持高效的图数据存储和检索。:利用图数据库的高效检索能力,快速找到与用户查询最相关的图元素,提高系统的响应速度。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1593

java quartz 教程_Quartz视频教程

Winform视频教程-任务定时执行工具本课程主要学习如何在winform下面实现定时执行这是官网Quartz Job Scheduling Library是什么?Quartz是功能强大的开源作业调度库,几乎可以集成到任何Java应用程序中-从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的计划,以执行数以万计,数以万计的工作;任务定义为标准Java组件的作业,它们实际上...

weixin_31463861的博客 153

从win系统远程使用服务器中的nsight system、nsight compute

本文介绍了如何在Windows系统中远程使用服务器上的Nsight System和Nsight Compute工具。主要内容包括:1)双系统同步安装相同版本的Nsight工具,配置环境变量;2)命令行生成profile文件或直接运行分析;3)Windows远程连接服务器的配置方法;4)解决权限问题的具体方案,如修改文件夹权限或调整NVIDIA驱动配置。文章提供了详细的安装步骤和常见问题解决方案,适用于需要进行GPU性能分析和调试的开发人员。

Justinyh的博客 401

Linux 4.19、Linux 5.10、Linux 6.1 三个版本详细分析

Linux 4.19发布日期:2018年10月22日LTS 状态:是长期支持版本,官方支持到2024年12月。Linux 5.10发布日期:2020年12月13日LTS 状态:LTS 版本,官方支持到2026年12月。Linux 6.1发布日期:2022年12月11日LTS 状态:不是官方的LTS版本,但通常社区会为新的版本提供一定时间的支持。定位:稳定性和长期支持,广泛应用于多种平台,尤其是嵌入式系统和服务器。主要优势:稳定性高,广泛的硬件支持,核心功能可靠。

小灰灰的博客 5956

Quartz 开源项目使用教程

Quartz 开源项目使用教程 【免费下载链接】quartz ???? a fast, batteries-included static-site generator that transforms Markdown content into fully functional websites ...

gitblog_00710的博客 338

Spring AI Alibaba实战训练营-16 NL2SQL (自然语言转 SQL)应用开发指南

本文介绍了一个基于AI的智能BI应用开发项目,主要实现自然语言转SQL(NL2SQL)功能,包含对话模块、MCP模块、向量数据管理模块。项目采用Spring AI Alibaba框架,集成通义千问大模型,支持内存向量库和AnalyticDB向量数据库两种存储方案。重点展示了chat模块的三个控制器实现:AnalyticNl2SqlController用于生产环境,SimpleChatController适用于开发测试,Nl2sqlForGraphController支持基于图的复杂对话流程。系统通过将业务知

program哲学 1587

Quartz例子,教程及包

www.quartz-scheduler.org/  quartz官方网站。   下面提供相关资料的下载:一个Quartz的例子,其中含有包。还有它的教程!

iteye_5095的博客 116

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Spring Boot 整合 Quartz 教程

Spring Boot 整合 Quartz 教程 1. 项目的目录结构及介绍 springboot-quartz/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── example/ │ │ │ ├── config/ │ │ │ ...

gitblog_00273的博客 429

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

玩转 quartz quartz 教程 quartz 实现 quartz 封装

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33948416的博客 91

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Quartz教程一:使用quartz

本系列教程由quartz-2.2.x官方文档翻译、整理而来,希望给同样对quartz感兴趣的朋友一些参考和帮助,有任何不当或错误之处,欢迎指正;有兴趣研究源码的同学,可以参考我对quartz-core源码的注释(进行中)。 Scheduler在使用之前需要实例化。一般通过SchedulerFactory来创建一个实例。有些用户将factory的实例保存在JNDI中,但直接初始化,然后使用该实

ccecwg的专栏 720

Quartz-MongoDB 项目教程

Quartz-MongoDB 项目教程 1. 项目目录结构及介绍 Quartz-MongoDB 项目的目录结构如下: quartz-mongodb/ ├── CONTRIBUTING.md ├── LICENSE.txt ├── README.md ├── build.gradle ├── gradle/ │ └── wrapper/ ├── gradle.properties ├── gra...

gitblog_01195的博客 566

quartz 动态添加job_Quartz.Net使用教程

Quartz.Net使用教程在项目的开发过程中,难免会遇见后需要后台处理的任务,例如定时发送邮件通知、后台处理耗时的数据处理等,这个时候你就需要Quartz.Net了。Quartz.Net是纯净的,它是一个.Net程序集,是非常流行的Java作业调度系统Quartz的C#实现。Quartz.Net一款功能齐全的任务调度系统,从小型应用到大型企业级系统都能适用。功能齐全体现在触发器的多样性...

weixin_39975744的博客 2201

【亲测免费】 Quartz Manager 使用教程

Quartz Manager 使用教程 1. 项目介绍 Quartz Manager 是一个用于控制和监控 Quartz Scheduler 的 Java 库。它通过提供一个 REST API 层和一个用户友好的 UI 控制台,增强了 Quartz Scheduler 的功能。Quartz Manager 可以嵌入到基于 Spring 的 Web 应用程序中,用于运行、启动、停止定时任务,并获取任...

gitblog_00402的博客 1393

Quartz教程(一)- HelloWorld

在工作中,会使用到任务调度这一方面的技术,开源框架Quartz使用的也比较多。 Quartz官网:http://quartz-scheduler.org/ 官方提供了示例代码,在这里记录一下对示例代码的学习。 下面是example1的学习。 1. Quartz简介         现代的 Web 应用程序框架在范围和复杂性方面都有所发展,应用程序的每个底层组件也必须相应地

什么是江湖? 2331

Quartz教程

Quartz教程Quartz教程四--Trigger介绍Quartz教程八--SchedulerListener08-24Quartz教程七--TriggerListener和JobListener08-17Quartz教程六--CronTrigger08-02Quartz教程五--SimpleTrigger07-16Quartz教程三--Job与JobDetail介绍06-27Quartz...

weixin_30545285的博客 95

Spring Boot整合Quartz教程

Spring Boot整合Quartz教程 项目介绍 Spring Boot整合Quartz项目是一个基于Spring Boot框架的任务调度系统,利用Quartz开源任务调度库实现定时任务的管理和执行。Quartz是一个功能强大的开源任务调度框架,广泛应用于需要定时执行任务的系统中。 项目快速启动 环境准备 JDK 1.8或更高版本 Maven 3.x IntelliJ IDEA或Eclips...

gitblog_00301的博客 532

Quartz Redis JobStore 使用教程

Quartz Redis JobStore 使用教程 1. 项目的目录结构及介绍 Quartz Redis JobStore 项目的目录结构如下: quartz-redis-jobstore/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ ├── net/ │ │ │ │ ├── joelinn/ │ │ │ ...

gitblog_00145的博客 560

GZY Quartz MUI 项目使用教程

GZY Quartz MUI 项目使用教程 1. 项目的目录结构及介绍 GZY Quartz MUI 是一个基于 Quartz 的轻量级注入化 UI 组件。项目的目录结构如下: GZY.Quartz.MUI/ ├── GZY.Quartz.MUI/ │ ├── Controllers/ │ ├── Models/ │ ├── Views/ │ ├── QuartzSettings/...

gitblog_01052的博客 548

Quartz Scheduler教程

Quartz是一个开源作业调度框架,可让您调度任务以预定的日期和时间运行。 快乐学习石英???? 1.快速入门 Quartz调度程序框架的Hello world。 Quartz 1.6 Hello World示例 旧的和流行的Quartz 1.6.3,旧系统可能仍在使用它。 Quartz 2 Hello World示例 最新的Quartz 2.1.5示例,更改了许多API...

一名可爱的技术搬运工 652
上一篇: Java 多线程 线程的优先级
下一篇: 介绍 Spring IoC 容器和 bean
httpfirewall
博客等级 码龄10年 1粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值