Quartz定时任务入门

Quartz定时任务框架(一) 入门案例 介绍 Quartz是一套支持时间调度的框架,官网http://www.quartz-scheduler.org/, jar 包下载,点这里 入门案例 1. quartz.properties文件 这个文件不是必须创建的,如果需要创建使用,必须创建在calsspath下面,对于web工程,编译后放到WEB-INF/classes下面 #定义scheduler的名称 org.qua... 阅读详情

1.Quartz是什么

大部分公司都会用到定时任务这个功能。
拿火车票购票来说,当你下单后,后台就会插入一条待支付的task(job),一般是30分钟,超过30min后就会执行这个job,去判断你是否支付,未支付就会取消此次订单;当你支付完成之后,后台拿到支付回调后就会再插入一条待消费的task(job),Job触发日期为火车票上的出发日期,超过这个时间就会执行这个job,判断是否使用等。

在我们实际的项目中,当Job过多的时候,肯定不能人工去操作,这时候就需要一个任务调度框架,帮我们自动去执行这些程序。那么该如何实现这个功能呢?

在这里插入图片描述

  • Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。
  • 在企业级应用中,经常会制定一些“计划任务”,即在某个时间点做某件事情,核心是以时间为关注点,即在一个特定的时间点,系统执行指定的一个操作
  • 任务调度涉及多线程并发、线程池维护、运行时间规则解析、运行现场的保护以恢复等方面
  • Quartz框架是一个开源的企业级任务调度服务,已经被作为任务调度的良好解决方案
  • Quartz对任务调度进行了高度抽象,提出了3个核心概念,并在org.quartz包中通过接口和类进行了描述。

2.Quartz能干什么?

  • 场景 #1: 下载交易流水
    从银行下载当日交易流水

  • 场景 #2: 邮件提醒和告警
    公司出于安全考虑,让每个员工三个月换一次邮箱密码。这种情况下,可以创建一个作业,让它每天午夜运行一次,并且向离过期时间不到三天的所有用户发邮件提醒。这里可以恰到好处的用到作业调度器。图 1.1 描绘了密码这个提醒作业。
    在这里插入图片描述
    图 1.1 密码过期的作业每晚发送邮件给密码很快会过期的用户

3.Quartz核心概念

  • 任务:就是执行的工作内容。Quartz提供Job接口来支持任务定义
  • 触发器(何时触发的规则):定义触发Job执行的时间触发规则。Quartz提供Trigger类及其子类支持触发器功能
  • 调度器:Quartz提供了Scheduler接口,将工作任务和触发器绑定,保证任务可以在正确的时间执行

在这里插入图片描述

4.Quartz下载

下载:http://www.quartz-scheduler.org/download/index.html

  • docs/wikidocs
    Quartz 的帮助文件
  • docs/api
    Quartz 框架的JavaDoc Api 说明文档
  • Examples
    Quartz 的例子
  • Lib
    Quartz 使用到的第三方包
  • src
    源码

5.HelloWorld程序

  • 创建maven工程,导入依赖
<dependency>
	<groupId>org.quartz-scheduler</groupId>
	<artifactId>quartz</artifactId>
	<version>2.2.1</version>
</dependency>
<dependency>
	<groupId>org.quartz-scheduler</groupId>
	<artifactId>quartz-jobs</artifactId>
	<version>2.2.1</version>
</dependency>

一个最简单的应用包含两个类:

  • HelloJob.java
    任务类,需要实现 job 接口,里面实现了你想要 定时执行的方法
  • SimpleExample.java
    主线程,用于任务的调度,执行等操作.

上代码:

  • HelloJob.java
/**
 * Description: 打印任意内容
 */
public class HelloJob implements Job{

    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        String printTime = new SimpleDateFormat("yy-MM-dd HH-mm-ss").format(new Date());
        System.out.println("HelloJob start at:" + printTime + ", prints: Hello Job-" + new Random().nextInt(100));

    }
}

任务很简单,HelloJob 实现了Quartz 的Job接口中的execute方法,任务的内容就是打印一行字。具体这个任务应该何时去执行,都在SimpleExample.java里面去定义实现。

  • SimpleExample.java
public class SimpleExample{

    public static void main(String[] args) throws SchedulerException, InterruptedException {
        // 1、创建调度器Scheduler
        SchedulerFactory schedulerFactory = new StdSchedulerFactory();
        Scheduler scheduler = schedulerFactory.getScheduler();
        // 2、创建JobDetail实例,并与PrintWordsJob类绑定(Job执行内容)
        JobDetail jobDetail = JobBuilder.newJob(HelloJob.class)
                                        .withIdentity("job1", "group1").build();
        // 3、构建Trigger实例,每隔1s执行一次
        Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "triggerGroup1")
                .startNow()//立即生效
                .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                .withIntervalInSeconds(1)//每隔1s执行一次
                .repeatForever()).build();//一直执行

        //4、执行
        scheduler.scheduleJob(jobDetail, trigger);
        System.out.println("--------scheduler start ! ------------");
        scheduler.start();

        //睡眠
        TimeUnit.MINUTES.sleep(1);
        scheduler.shutdown();
        System.out.println("--------scheduler shutdown ! ------------");
    }
}


通过代码可以看到几个重要的类:

  • JobDetail: 真正的任务内容,任务本身是集成Job接口的,但是真正的任务是JobBuilder通过反射的方式实例化的,
  • Trigger: 触发器,定义任务应当开始的时间,主要分为两类SimpleTrigger,CronTrigger,当前例子的就是简单触发器,CronTrigger主要用于处理quartz表达式定义的任务,比如每个月20号,每个星期一之类的。
  • Scheduler: 计划执行者,现在我们有了要做的内容(HelloJob),有了要做的时间(下一分钟),接下来,就把这两个内容填充到计划任务Scheduler对象里面,到了时间它就可以自动运行了.

6.Quart架构

当要深入研究一个技术时,研究它的体系结构和内部运行原理,不失为一种较好的方式。同理,我们在研究Quartz时,也采用类似的方法,

下图为Quartz的大致结构图。
在这里插入图片描述

6.1.Quartz关键组件

Quartz比较关键的两个核心组件分别为Job和Trigger
job–表示任务是什么
trigger–表示何时触发任务
在这里插入图片描述

JobExecutionContext
JobExecutionContext中包含了Quartz运行时的环境以及Job本身的详细数据信息。
当Schedule调度执行一个Job的时候,就会将JobExecutionContext传递给该Job的execute()中,Job就可以通过JobExecutionContext对象获取信息。
主要信息有
在这里插入图片描述
JobDataMap
JobDataMap实现了JDK的Map接口,可以以Key-Value的形式存储数据。
JobDetail、Trigger都可以使用JobDataMap来设置一些参数或信息,
Job执行execute()方法的时候,JobExecutionContext可以获取到JobExecutionContext中的信息:
如:

 // 2、创建JobDetail实例,并与PrintWordsJob类绑定(Job执行内容)
 JobDetail jobDetail = JobBuilder.newJob(HelloJob.class).usingJobData("jobDetail1", "这个Job用来测试的")
         .withIdentity("job1", "group1").build();

 Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "triggerGroup1")
         .usingJobData("trigger1", "这是jobDetail1的trigger")
         .startNow()//立即生效
         .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                 .withIntervalInSeconds(1)//每隔1s执行一次
                 .repeatForever()).build();//一直执行

Job执行的时候,可以获取到这些参数信息:

    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {

        System.out.println(jobExecutionContext.getJobDetail().getJobDataMap().get("jobDetail1"));
        System.out.println(jobExecutionContext.getTrigger().getJobDataMap().get("trigger1"));
        String printTime = new SimpleDateFormat("yy-MM-dd HH-mm-ss").format(new Date());
        System.out.println("HelloJobstart at:" + printTime + ", prints: Hello Job-" + new Random().nextInt(100));

    }

6.Trigger、SimpleTrigger、CronTrigger

在这里插入图片描述

Trigger
Trigger是Quartz的触发器,会去通知Scheduler何时去执行对应Job。

new Trigger().startAt():表示触发器首次被触发的时间;
new Trigger().endAt():表示触发器结束触发的时间;

SimpleTrigger
SimpleTrigger可以实现在一个指定时间段内执行一次作业任务或一个时间段内多次执行作业任务。
下面的程序就实现了程序运行5s后开始执行Job,执行Job 5s后结束执行:

Date startDate = new Date();
startDate.setTime(startDate.getTime() + 5000);

 Date endDate = new Date();
 endDate.setTime(startDate.getTime() + 5000);

        Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "triggerGroup1")
                .usingJobData("trigger1", "这是jobDetail1的trigger")
                .startNow()//立即生效
                .startAt(startDate)
                .endAt(endDate)
                .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                .withIntervalInSeconds(1)//每隔1s执行一次
                .repeatForever()).build();//一直执行

6.1 CronTrigger介绍

CronTrigger也是Trigger的子类
在这里插入图片描述
CronTrigger功能非常强大,是基于日历的作业调度,而SimpleTrigger是精准指定间隔,所以相比SimpleTrigger,CroTrigger更加常用。CroTrigger是基于Cron表达式的,先了解下Cron表达式:
由7个子表达式组成字符串的。

CronTrigger和SimpleTrigger的对比
在这里插入图片描述

CronTrigger允许用户更精准地控制任务的运行日期和时间,而不仅仅是定义工作的频度
CronTrigger通过Cron表达式定义准确的运行时间点。创建CronTrigger的语法如下:
创建CronTrigger的语法很简单,最关键的是Cron表达式的编写

要使用CronTrigger,必须掌握Cron表达式
在这里插入图片描述
Cron表达式由6~7个由空格分隔的时间元素组成。第7个元素可选
在这里插入图片描述
在这里插入图片描述
Cron表达式的每个字段,都可以显式地规定一个值(如49)、一个范围(如1-6)、一个列表(如1,3,5)或者一个通配符(如*)

Cron表达式有几个特殊的字符,说明如下
“ - ”:中划线,表示一个范围 1-10
“ , ”:使用逗号间隔的数据,表示一个列表 1,8,10
“ * ”:表示每一个值,它可以用于所有字段。例如:在小时字段表示每小时 *
“ ? ”:该字符仅用于“月份中的哪一天”字段和“星期几”字段,表示不指定值
“ / ”:通常表示为x/y,x为起始值,y表示值的增量。
“ L ”:表示最后一天,仅在日期和星期字段中使用
“ # ”:只能用于“星期几”字段,表示这个月的第几个周几。例如:“6#3”指这个月第三个周五

6.2 Cron表达式示例

语法格式:

秒 分 时 天 月 星期 年

常用表达式例子
(1)0 0 2 1 * ? * 表示在每月的1日的凌晨2点调整任务
(2)0 15 10 ? * MON-FRI 表示周一到周五每天上午10:15执行作业
(3)0 15 10 ? 6L 2002-2006 表示2002-2006年的每个月的最后一个星期五上午10:15执行作
(4)0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
(5)0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
(6)0 0 12 ? * WED 表示每个星期三中午12点
(7)0 0 12 * * ? 每天中午12点触发
(8)0 15 10 ? * * 每天上午10:15触发
(9)0 15 10 * * ? 每天上午10:15触发
(10)0 15 10 * * ? * 每天上午10:15触发
(11)0 15 10 * * ? 2005 2005年的每天上午10:15触发
(12)0 * 14 * * ? 在每天下午2点到下午2:59期间的每1分钟触发
(13)0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发
(14)0 0/5 14,18 * * ? 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
(15)0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发
(16)0 10,44 14 ? 3 WED 每年三月的星期三的下午2:10和2:44触发
(17)0 15 10 ? * MON-FRI 周一至周五的上午10:15触发
(18)0 15 10 15 * ? 每月15日上午10:15触发
(19)0 15 10 L * ? 每月最后一日的上午10:15触发
(20)0 15 10 ? * 6L 每月的最后一个星期五上午10:15触发
(21)0 15 10 ? * 6L 2002-2005 2002年至2005年的每月的最后一个星期五上午10:15触发
(22)0 15 10 ? * 6#3 每月的第三个星期五上午10:15触发

在这里插入图片描述

Cron表达式在线插件:http://cron.qqe2.com/
在这里插入图片描述

6.3 Cron表达式案例

下面的代码就实现了每周一到周五上午10:30执行定时任务

public class Test3 {

    public static void main(String[] args) throws SchedulerException, InterruptedException {
        // 1、创建调度器Scheduler
        SchedulerFactory schedulerFactory = new StdSchedulerFactory();
        Scheduler scheduler = schedulerFactory.getScheduler();
        // 2、创建JobDetail实例,并与PrintWordsJob类绑定(Job执行内容)
        JobDetail jobDetail = JobBuilder.newJob(HelloJob.class)
                .usingJobData("jobDetail1", "这个Job用来测试的")
                .withIdentity("job1", "group1").build();
        // 3、构建Trigger实例,每隔1s执行一次
        Date startDate = new Date();
        startDate.setTime(startDate.getTime() + 5000);

        Date endDate = new Date();
        endDate.setTime(startDate.getTime() + 5000);

        CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "triggerGroup1")
                .usingJobData("trigger1", "这是jobDetail1的trigger")
                .startNow()//立即生效
                .startAt(startDate)
                .endAt(endDate)
                .withSchedule(CronScheduleBuilder.cronSchedule("* 30 10 ? * 1/5 2018"))
                .build();

        //4、执行
        scheduler.scheduleJob(jobDetail, cronTrigger);
        System.out.println("--------scheduler start ! ------------");
        scheduler.start();
        System.out.println("--------scheduler shutdown ! ------------");

    }

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

相关推荐

【Quartz】Quartz定时任务框架

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

qq_22193961的博客 9089

Quartz 定时任务

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

qq_59308271的博客 6893

Quartz完全开发手册(一篇学会Quartz所有知识点)

Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz是开源且具有丰富特性的"任务调度库",能够集成于任何的java应用,小到独立的应用,大至电子商业系统。Quartz能够创建亦简单亦复杂的调度,以执行上十、上百,甚至上万的任务。任务job被定义为标准的java组件,能够执行任何你想要实现的功能。quartz调度框架包含许多企业级的特性,如JTA事务、集群的支持。

hao_kkkkk的专栏 2191

【一】Quartz定时任务

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

mengyb个人文档记录 3400

ROS四旋翼无人机快速上手指南(4):阿木实验室PX4功能包飞行控制分析与讲解(重点章节)

成就更好的自己 这一章详细讲解一下阿木实验室(AMOV)的开源项目px4_command功能包,此功能包通过mavlink协议直接控制烧录px4固件的自驾仪,还融合了来自各个传感器的位姿,距离等信息,此外,功能包提供的接口向上对接应用层算法级的程序例如SLAM,kfc目标检测引导,路径规划等算法,因此,在整个无人机控制中起到了承上启下至关重要的作用。 用到的文件及工具包链接如下: AMOV实验室源码如下: https://gitee.com/theroadofengineers/px4_comman

The Road of Engineer 6171

Overleaf-Latex-Elsevier-图、表、参考文献标题及引用、伪代码写法(绝对详细直观且易懂)

overleaf爱思唯尔模板踩过的一些坑以及解决办法

2403_87584552的博客 5851

(办公)定时任务quartz入门

  1.简单入门. 2.定时任务注入service. 入门案例: 1.1. 加jar <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> ...

weixin_30387339的博客 90

C#上位机之海康相机开发(SDK)实战教程

SDK的接口设计遵循“句柄-操作-释放”模式,掌握→→→的流程,就能完成基础开发;工业场景需重点关注稳定性:断连重连、内存管理、抗干扰(网口相机的IP设置、触发信号的可靠性);进阶功能(如图像处理、多相机同步)需结合视觉库(EmguCV)和硬件特性(GPIO触发),但前提是保证基础采集的稳定。建议新手先跑通SDK自带的C#示例,理解每个函数的作用,再逐步替换为自己的代码。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 2195

零基础入门:5分钟学会Quartz定时任务

Quartz是一个开源的作业调度库,可以创建简单或复杂的定时任务。它的核心优势是解耦任务逻辑与调度规则,通过简单的API就能控制任务执行。最近在学习Java定时任务时发现了Quartz这个轻量级框架,它能让调度任务变得特别简单。作为新手,我记录下自己的入门过程,希望能帮助同样刚接触的同学快速理解核心用法。注意我们选择不依赖Spring的纯Quartz使用方式,更聚焦框架本身。上测试时,发现它的在线编辑器能直接运行这类Java项目,不需要本地配置环境特别方便。这种边学边练的方式,比单纯看文档要高效得多。

CrystalwaveStag的博客 280

YOLOv11改进策略【模型轻量化】| 使用 MoblieOne 模块,引入结构重参数化,提高模型检测效率

本文记录的是基于MobileOne的YOLOv11骨干网络改进方法研究。MobileOne的基础模块通过重参数化,。在将其替换YOLOv11的骨干网络后,实现模型轻量化。

Limiiiing的博客 1426

【C2000系列DSP的Bootloader详解】如何利用脚本自动合并Bin文件

本文通过OutconvertBin.py实现了 C2000 Bootloader+UserApp 的「ELF 转 BIN+BIN 合并」全流程自动化,核心优势如下: 架构适配:严格遵循 C28x 16 位大端格式,生成的 BIN 文件可直接烧录; 自动化程度高:一键完成清理、转换、合并,无需手动执行多个命令; 可追溯性:生成 CRC32 校验值,便于验证文件完整性; 量产友好:合并后的merged.bin支持一次性烧录,提升量产效率。

昔时扬尘处 184

SpringBoot入门建站全系列(十五)内置定时任务及Quartz定时任务使用

SpringBoot入门建站全系列(十五)内置定时任务及Quartz定时任务使用 一、概述 用Spring,就是为了简单。 但是我还是要总结下java定时任务实现的几种方式。 1.TimerTask,等于一个线程隔一段时间运行一下。 2.ScheduledExecutorService,线程池版的TimerTask。 3.Spring支持的定时任务,@Schedule注解,支持crontab表达式...

feiyangtianyao的专栏 631

【后量子密码】SPHINCS+ 算法(二):签名与验签(附源码分析)

本节介绍SPHINCS+ 算法的密钥生成、签名与验签。nnn:安全参数;www:Winternitz参数,WOTS+签名分解的基底;hhh:超树的高度;ddd:超树中子树的层数;kkk:FORS 树的数量;ttt:FORS 树的叶子节点数。

听雨草堂 4680

Java 使用 Quartz 实现定时任务(超简单入门)

在日常开发中,我们经常会遇到一些“需要定时执行”的任务,这时候,使用一个专业的任务调度框架可以大大简化我们的工作。 今天这篇文章,带你一步步使用 Java 中非常常见的调度框架 Quartz,实现一个简单的定时任务 —— 每 5 秒输出一次控制台日志。

zeroFOR112的博客 1723

【华为OD技术面试真题 - 技术面】- python面试题(1)

华为OD面试技术面准备指南 华为OD面试技术面常见问题解答 华为OD面试技术面经验分享 华为OD面试技术面注意事项 华为OD面试技术面攻略 华为OD面试技术面模拟题目与解析 华为OD面试技术面知识点梳理 华为OD面试技术面常考

算法大师! 5536

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

定时任务框架Quartz-(一)Quartz入门与Demo搭建

一、什么是Quartz 什么是Quartz? Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于java.util.Timer。但是相较于Timer, Quartz增加了很多功能: 持久性作业 - 就是保持调度定时的状态; 作业管理 - 对调度作业进行有效的管理; ...

noaman_wgs的博客 39万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

定时任务_定时任务Quartz入门

前言Quartz是一个定时任务框架,即可以在程序运行期间,定时定期的做出些什么事情,比如发邮件,重启机器,清除缓存等等。java.util.Timer也可以做到这些功能,但是Quartz框架毕竟是框架,比java自带的定时工具要强大很多。初次体验对于具体细节还不太清楚,目前主要先学会使用,更深入的要等有具体场景具体需求了再深入了解。使用java.util.Timer因为对定时任务不熟悉,...

weixin_39702799的博客 201

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

定时任务quartz简单入门1

定时任务quartz简单入门1一、项目搭建二、开始撸代码 前言,以前一直觉得碰到问题解决了或者研究明白了,就会记忆深刻,想忘都忘不掉,最近做的项目发现有踩了一次以前踩过的坑,遂想着还是把一些学习的过程,一些体悟都记录下来比较好。。。可能是老了吧 一、项目搭建 基本的下载jar包再build path 这里就不说了,这里使用maven搭建quartz的测试工程。 引入依赖,pom文件如下 二、开始...

qq_20396905的博客 467

2022/6/27 Quartz(定时任务)讲解+入门案例

目录1丶Quartz简介2丶Quartz运行环境3丶Quartz设计模式4丶Quartz学习的核心概念 4.1丶任务Job 4.2丶触发器Triger 4.3丶调度器Scheduler5丶Quartz的体系结构6丶Quartz 的常用API7丶快速开始(入门demo) 7.1丶新建一个maven项目 7.2丶 编写一个Job类 7.3丶编写触发器和调度器 7.4丶运行结果 8丶SpringBoot 整合 Qua

Abcdzzr的博客 1668

quartz定时任务(01)—— 入门

quartz是一个由java编写的任务调度库。简单来说,其实就是我们在业务中需要使用的定时任务器。相信很多人可能没有看到过Quartz这个框架,但很多人使用过定时任务业务的人却间接的使用到了。比如,当当网的Elastic-job,又比如Spring中自带的定时任务框架,其实都是对Quartz的一次封装。

四维大脑的博客 1050

Quartz定时任务入门案例

概述 Quartz是一款任务调度框架,简洁,简单,我们来看它的一个简单的入门案例 demo 需要说明的一点是,调度类Scheduler可以从StdSchedulerFactory中获取,也可以在SpringBoot中用@Autowired注解获得,在用SpringBoot的开发框架中,推荐使用@Autowired直接注入获得,比较方便,也是官方推荐 @RestController @RequestMapping("/quartzController") public class QuartzTestCont

weixin_40598838的博客 337

浅谈+详解Quartz定时任务,快速入门Quartz。

大部分公司都会用到定时任务功能。举两个生活中的例子,例如火车票购票之后,后台就会插入一条待支付的task(job);再比如说优惠券快到期了,通过定时任务向未使用的用户发送提醒…还有很多类似的实际应用场景。这些提醒或者计时的工作当然不可能人工操作,那么我们就必须实现一个定时任务去实现这些功能。 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于java.util.Timer。但是相较于Timer, Quartz增加了

EatingSoilLang 1041

java 定时任务 Quartz 入门篇

Quartz是一个完全由java编写的开源作业调度框架,具体了解见百度 我们现跑一个简单的Quartz 创建项目导入依赖 <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <ver...

Y_vocefenrir的博客 317

Quartz使用-入门使用(java定时任务实现)

Quartz使用-入门使用(java定时任务实现) 分类: java学习2011-05-27 16:20 22608人阅读 评论(5) 收藏 举报 任务quartzjavastringjavamaildate 注:这里使用的是Quartz1.6.5版本(包:quartz-1.6.5.jar)       [java] view plaincop

物理天堂 1561
上一篇: SpringBoot实现监听Redis key失效事件
下一篇: 分布式锁专题-分布式锁入门
熊猫IT技术
熊猫IT技术 优质创作者: Java技术领域 优质创作者: Java技术领域 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄10年 6021粉丝 1312原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

熊猫IT技术

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

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

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

打赏作者

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

抵扣说明:

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

余额充值