有用到构建者模式:

    builder---JobDetail相当于需要构建者构建出来的一个配件:JobDetail为Job实例提供了许多设置属性,以及JobDetaMap成员变量属性,它用来存储特定Job实例的状态信息,调度器需要借助JobDeatil对象来添加Job实例!JobDetail重要属性:name\group\jobClass\jobDataMap!!组名没有设置就是:DEFAULT!

    builder---Trigger相当于需要构建者构建出来的一个配件

    adapter---Scheduler相当于JobDetail和Trigger这两个配件组装成一个Scheduler

  A---JobExecutionContext和JobDataMap介绍【注意:在进行任务调度时JobDataMap存储在JobExecutionContext(启动:该类传递给Job的execute()方法)中】

  AA---有状态的Job和无状态的Job【@PersisJobDataAfterExecution注解的使用:有状态的Job可以理解为多次Job调用期间可以持有一些状态信息,这些状态信息存储在JobDataMap中,而默认的无状态job每次调用时都会创建一个新的JobDataMap】。

  AAA---HelloJob加上@PersisJobDataAfterExecution注解count(set方法)累加【有状态】--------------不加注解重复调度启动count值固定不变 、

  AAAA---Trigger触发器介绍-SimpleTriggerImpl-CronTriggerImpl【jobKey-startTime-endTime】

  AAAAA---SimpleTrigger触发器:SimpleTrigger对于设置和使用是最为简单的一种QuartzTrigger-它为那种需要在特定的日期/时间启动,且以一个可能的间隔时间重复执行n次的Job所设计的-案例一:表示在一个指定的时间段内,执行一次作业任务-案例2:或在指定的时间间隔内多次执行作业任务-案例3:指定任务的结束时间

  AAAAAA---CronTrigger触发器:如果你需要像日历那样按日程触发任务,而不是像SimpleTrigger那样每隔特定的时间触发,CronTriggers通常比SimpleTrigger更有用,因为它是基于日历的作业调度器。【也有startTime-endTime】

  每次调用的时候Job都会生成一个实例

一、首先需要明白Quartz的几个核心概念。

  A---Job表示一个工作,要执行的具体内容。此接口中只有一个方法,如下:void execute(JobExcutiontext context)

  B---JobDetail表示一个具体的可执行的调度程序!!,Job 是这个可执行程调度程序所要执行的内容,另外 JobDetail 还包含了这个任务调度的方案和策略。!如果HelloJob内重写了无参数的构造方法,里面有system语句,会先执行重写的无参构造方法里的输出语句!

  C---Trigger 代表一个调度参数的配置,什么时候去调。

  D---Scheduler 代表一个调度容器,一个调度容器中可以注册多个 JobDetail 和 Trigger。当 Trigger 与 JobDetail 组合,就可以被 Scheduler 容器调度了。

  

  1.加入依赖。www.mvmrepository.com表示mvn仓库网址:可以搜索获取maven的依赖的jar

    1.1 核心包 :org.quarzt-scheduler(groupId)  ---  quartz(artifactId)

    1.2 工具 :org.quarzt-scheduler(groupId)  ---  quartz-job(artifactId)

    1.3 日志包:log4j---需要引入log4.j.properties(have content)【log4j利用法:org.apache.log4j.ConsoleAppender控制台输出或者.FileAppender文件的输出---log4j.rootLogger=info,s控制台输】

    1.4 插件(maven-compiler-plugin)jdk1.8

  2.创建一个quartz.job的包创建一个类!实现Job接口!重写execute(JobExecutionContext)方法!

    2.1 execute方法里写你想要(定时)执行的语句

  3.创建一个quartz.mian的包创建一个可执行的类即主线程。

    3.1 main方法内:A:调度器(Scheduler),从工厂中获取调度的实例(默认:实例化new StdSchedulerFactory();)

    3.2       B(名称,组名称): 任务实例(JobDetail)//加载任务类,与HelloJob完成帮绑定,要求HelloJob实现Job接口。quarzt

    3.3       C(名称,组名称): 触发器(Trigger),自定义马上启动触发器,!简单的调度器构建(永远在5秒后(自定义的重复时间)重复第二遍的时候)!

    3.4  A2 :第一个A创建的调度器即适配BC(builder配件):schduler.scheduleJob(jobDetail,trigger);//让调度器关联任务和触发器,保证按照触发器定义的条件执行任务

    3.5 D :scheduler.start(),调度器调用启动方法。

  4. 运行:即没5秒执行一次HelloJob类。

        

5.17 Quartz笔记的更多相关文章

  1. SpringBoot中使用Quartz笔记

    Quartz可以用来做什么? Quartz是一个任务调度框架,可用来做定时任务. 吧啦吧啦......... 还是直接上代码. application.properties  配置文件. * * ? ...

  2. [Quartz笔记]玩转定时调度

    简介 Quartz是什么? Quartz是一个特性丰富的.开源的作业调度框架.它可以集成到任何Java应用. 使用它,你可以非常轻松的实现定时任务的调度执行. Quartz的应用场景 场景1:提醒和告 ...

  3. centos 6.5 升级内核 linux 3.12.17 (笔记 实测)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G) 系统版本:Linux centos 2.6.32-431.el6.x86_64(Centos-6.5-x86_64-mi ...

  4. iOS阶段学习第17天笔记(NSFileManager-NSFileHandle-文件操作)

    iOS学习(OC语言)知识点整理 一.单例模式 1)单例是一种编程思想,一个设计模式,与语言无关在采用了单例对象的应用程序中,需要单例类自行提供实例化单例对象, 不管实例化单例对象多少次,只有一个对象 ...

  5. quartz笔记

    首先网络上的很多教程经常有错(信息过载了),其主要原因是版本发生了变化,例如quartz1和2之间还是有不少差别的,导致查找资料的人浪费了不少时间.所以无论教程如何写,都建议读者首先学习官网的教程,如 ...

  6. 我的Quartz笔记

    代码: package com.smt.autorun; import java.io.File; import java.util.ArrayList; import java.util.Date; ...

  7. 17.Python笔记之memcached&redis

    作者:刘耀 博客:www.liuyao.me 博客园:www.cnblogs.com/liu-yao 一.Memcached 1.介绍 Memcached 是一个高性能的分布式内存对象缓存系统,用于动 ...

  8. apue第17章笔记

    unix domain socket 关闭socket并不会删除文件,重复bind会失败.所以在bind之前要unlink该文件. open服务器的实现只是简单地看了一下,大致上就是通过unix do ...

  9. 2019.04.17 读书笔记 checked与unchecked

    在普通的编程中,我们是很容易去分析数据的大小,然后给出合理的类型,但是在很多数据库的累计中,缺存在很多隐患,特别是研发时,数据量小,求和也不会溢出,当程序运行几年后,再来一次大求和,隐形的BUG就出来 ...

随机推荐

  1. 前端领域的BEM到底是什么

    前端领域的BEM到底是什么 BEM - Block Element Modfier(块元素编辑器) BEM方法确保每一个参加了同一网站开发项目的人,基于一套代码规范去开发,这样非常有利于团队成员理解彼 ...

  2. 爬虫文件存储-2:MongoDB

    1.连接MongoDB 连接 MongoDB 我们需要使用 PyMongo 库里面的 MongoClient,一般来说传入 MongoDB 的 IP 及端口即可,第一个参数为地址 host,第二个参数 ...

  3. Linux文件、目录属性

    文件.目录属性 可能有人觉得,文件这东西这么普通有什么好讲的,,,其实不然,在linux中一切皆文件,搞清楚文件的本质,将对我们大有裨益. 文件.目录属性简介 举个例子 randolf@localho ...

  4. chrome本地测试cookie时无效的原因

    https://blog.csdn.net/lyj787505955/article/details/38079079 应该是chrome的原因, 同一网页放在tomcat后,通过localhost方 ...

  5. python爬虫10 | 网站维护人员:真的求求你们了,不要再来爬取了!!

    今天 小帅b想给大家讲一个小明的小故事 ... 话说 在很久很久以前 小明不小心发现了一个叫做 学习python的正确姿势 的公众号 从此一发不可收拾 看到什么网站都想爬取 有一天 小明发现了一个小黄 ...

  6. Python基础-判断闰年

    输入一个年份,判断该年份是否是闰年并输出结果.求它是否是闰年?要求:能被4整除不能被100整除或者能被400整除. y=input('请输入年份:') if(y%4==0 and y%100 != 0 ...

  7. Performance Metrics(性能指标2)

    这一章我们将讨论性能指标的优化(如CPU利用率和执行时间的优化是如此的重要),下面是一章本书性能优化的章节示意图: 不同的指标都适合于不同的性能测量领域,如数据库访问时间的性能测量可能不适合评价一个客 ...

  8. 3.2 Piecewise Linear Interpolation(站点)

    Newton Interpolation: https://www.youtube.com/watch? v=EyRQXA56asI Piecewise Linear Interpolation: h ...

  9. 基于Windows Azure 搭建基于SharePoint 2010 Intranet、Extranet、Internet (4): 配置传出邮件服务: 使用 outlook.com 发送邮件通知

    前几篇文章,已经安装了SharePoint 2010,今天将演示如何配置传出邮件.由于某些原因,企业可能没有安装自己邮件服务器,此时我们可以使用公共的邮箱服务来发送邮件通知,比如outlook.com ...

  10. Chromium网页Graphics Layer Tree创建过程分析

    在前面一文中.我们分析了网页Render Layer Tree的创建过程.在创建Render Layer的同一时候,WebKit还会为其创建Graphics Layer.这些Graphics Laye ...