Quartz基础结构
        Quartz对任务调度的领域问题进行了高度抽象,提出了调度器(Scheduler)、任务(Job)和触发器(Trigger)这3个核心概念,并在Trigger触发机制的基础上使用org.quartz.Calendar进行定点(如假期)排除。
 
   
    定义任务调度需要以下几个步骤:
  • 定义JobDetail实例对象,该对象需要指定名称、组和Job接口的Class信息。
  • 定义Trigger实例对象,通过该对象设置触发任务的相关信息,如起始时间、重复次数等。
  • 定义Schedule实例对象,通过ScheduleFactory工厂接口的实现类实例该对象。
  • 向Schedule中注册JobDetail和Trigger,有两种方式:
    • 通过Schedule的schedule方法注册,此时它自动让Trigger和JobDetail绑定。
    • 通过addJob和scheduleJob方法注册,此时需要手动设置 Trigger的关联的Job组名和Job名称,让Trigger和JobDetail绑定。
  • 启动调度器(调用Schedule对象的start方法)。
Cron表达式
    Quartz使用Cron表达式定义时间规则,其中Cron表达式由6或7个空格分隔的时间字段组成。
  • * 表示所有值。
  • ? 表示未说明的值,即不关心它为何值。? 号只能用在日和周域上,为这两域的其中一个指定了值,那就必须在另一个字值上放一个 ?。
  • - 表示一个指定的范围;
  • , 表示附加一个可能值。
  • / 符号前表示开始时间,符号后表示每次递增的值。
  • L 表示这个月最后一天。
  • W 用来描叙最接近指定天的工作日(周一到周五)。
  • # 用来指定这个月的第几个周几。
  • C 指和calendar联系后计算过的值。
在Spring中使用Quartz
        在Spring中主要是通过配置bean的方式定义Schedule、Trigger和JobDetail三个主要实体。通过JobDetailBean和 MethodInvokingJobDetailFactoryBean配置JobDetail信息;通过SimpleTriggerBean和CronTriggerBean配置Trigger信息;通过ScheduleFactoryBean配置Schedule信息。它们具体怎么配置参考源代码的setter方法。
 
Spring对JDK Timer的支持
        Spring提供了几个JDK Timer的支持类,主要在以下方面对JDK Timer提供支持:
  • ScheduledTimerTask,它对TimerTask提供封装并提供相关的配置。
  • 通过MethodInvokingTimerTaskFactoryBean类可以将一个Bean的方法封装为TimerTask。
  • 通过TimerFactoryBean可以方便地配置Timer,此外让Timer的生命周期和Spring容器的生命周期相关,在初始化TimerFactoryBean后,启动Timer,在Spring容器关闭前取消Timer
 
 
 
 
 

【JAVA】Quartz 任务调度和异步执行器的更多相关文章

  1. java Quartz任务调度器

    1.quarz对java1.5实现的简单调度做了封装 /**     * quartz对任务调度进了高度抽象: 1调度器:2任务:3触发器     * Job接口(任务):定义需要调度的任务     ...

  2. 从零开始学 Java - Spring 使用 Quartz 任务调度定时器

    生活的味道 睁开眼看一看窗外的阳光,伸一个懒腰,拿起放在床一旁的水白开水,甜甜的味道,晃着尾巴东张西望的猫猫,在窗台上舞蹈.你向生活微笑,生活也向你微笑. 请你不要询问我的未来,这有些可笑.你问我你是 ...

  3. Java&Quartz实现任务调度

    目录 Java&Quartz实现任务调度 1.Quartz的作用 2.预备 3.Quartz核心 3.1.Job接口 3.2.JobDetail类 3.3 JobExecutionContex ...

  4. 通过源码分析Java开源任务调度框架Quartz的主要流程

    通过源码分析Java开源任务调度框架Quartz的主要流程 从使用效果.调用链路跟踪.E-R图.循环调度逻辑几个方面分析Quartz. github项目地址: https://github.com/t ...

  5. (转)Quartz任务调度(1)概念例析快速入门

    http://blog.csdn.net/qwe6112071/article/details/50991563 Quartz框架需求引入 在现实开发中,我们常常会遇到需要系统在特定时刻完成特定任务的 ...

  6. Quartz任务调度快速入门

    Quartz任务调度快速入门 概述 了解Quartz体系结构 Quartz对任务调度的领域问题进行了高度的抽象,提出了调度器.任务和触发器这3个核心的概念,并在org.quartz通过接口和类对重要的 ...

  7. java Quartz定时器任务与Spring task定时的几种实现,

    java Quartz定时器任务与Spring task定时的几种实现 基于java 的定时任务实现, Quartz 时间详细配置    请查阅   http://www.cnblogs.com/si ...

  8. Quartz任务调度

    狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! Quartz任务调度 课程目标 : 了解Quartz框架 : 任务(Job)  触发器(Trig ...

  9. Quartz任务调度实践

    最近在写一个任务调度程序,需要每隔几秒查询数据库,并取出数据做一些处理操作.使用到了Quartz任务调度框架. 基本概念 Quartz包含几个重要的对象,分别为任务(Job),触发器(Trigger) ...

随机推荐

  1. 从 Eclipse 迁移至 Android Studio

    从 Eclipse 迁移至 Android Studio 本文内容 Android Studio 基础知识 迁移先决条件 将项目导入 Android Studio 后续步骤 将项目迁移至 Androi ...

  2. 2014百度之星资格赛 1004:Labyrinth(DP)

    Labyrinth Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  3. Codeforces Round #363 Fix a Tree(树 拓扑排序)

    先做拓扑排序,再bfs处理 #include<cstdio> #include<iostream> #include<cstdlib> #include<cs ...

  4. ASMCMD命令

    安装好用的rlwrap工具,在环境变量里添加如下,就能实现显示当前路径(目录),目录补全的方便功能 alias asmcmd='rlwrap -r -i asmcmd –p' asmcmd>he ...

  5. hdu 5288 数学 ****

    给一个序列 定义函数f(l ,r) 为区间[l ,r] 中 的数ai不是在这个区间其他任意数aj的倍数 求所有f(l,r)之和 通过预处理,记录 a[i] 的左右边界(所谓的左右边界时 在从 a[i] ...

  6. Android ImageCache图片缓存,使用简单,支持预取,支持多种缓存算法,支持不同网络类型,扩展性强

    本文主要介绍一个支持图片自动预取.支持多种缓存算法的图片缓存的使用及功能.图片较大需要SD卡保存情况推荐使用ImageSDCardCache. 与Android LruCache相比主要特性:(1). ...

  7. loj 1377 (bfs)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1377 思路:这道题只要处理好遇到"*"这种情况就可以搞定了.我们可 ...

  8. Linux学习笔记(13)权限管理

    1 ACL权限 (1)简介和开启方式 ACL(Access Control List)权限的目的是在提供传统的owner.group.others的read.write.execute权限之外的局部权 ...

  9. Jmeter之csv、用户自定义变量以及Query Type分析(八)

    很多童鞋不知道对于Jmeter的Query Type 不知道选哪个,为什么选,怎么选! 下面这边做个简单的分析, 那么首先什么是CSV Data Set Config,有什么用呢? CSV Data ...

  10. 记录linux /bin被误删除的解决过程

    1.事因: 执行shell测试时,shell中rm -rf $path/* 变量$path为空,结果执行的命令是rm -rf / 事发时及时ctrl+c中断,导致只有/bin /boot目录删除 2. ...