quantz入门和使用流程(转载)

1、下载地址:http://quartz-scheduler.org/downloads/catalog

http://quartz-scheduler.org/downloads/destination?name=quartz-2.2.1-distribution.tar.gz&bucket=tcdistributions&file=quartz-2.2.1-distribution.tar.gz

2、quartz-2.1.5文件根目录中有很多jar包,Quartz 最核心的包就是quartz-all-2.1.5.jar,如果需要用到其他Quartz 的其他特性,可以考虑将相应的包加入到classpath中,除此之外,Quartz 还依赖一些第三方的包,那些包都放在了lib目录下,将其也全部加入到classpath中

3、在src下新建一个quartz.properties文件,该文件用来配置Quartz 的一些参数

一个简单的实例:

quartz.properties文件配置内容如下:

Xml代码  

  1. org.quartz.scheduler.instanceName: QuartzTest
  2. org.quartz.threadPool.threadCount: 3
  3. org.quartz.jobStore.class: org.quartz.simpl.RAMJobStore

log4j.properties配置内容如下:

Xml代码  

  1. log4j.rootLogger=INFO, stdout
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  3. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  4. log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

QuartzTest.java

Java代码  

  1. package demo01;
  2. import org.quartz.JobBuilder;
  3. import org.quartz.JobDetail;
  4. import org.quartz.Scheduler;
  5. import org.quartz.SchedulerException;
  6. import org.quartz.SchedulerFactory;
  7. import org.quartz.SimpleScheduleBuilder;
  8. import org.quartz.Trigger;
  9. import org.quartz.TriggerBuilder;
  10. import org.quartz.TriggerKey;
  11. import org.quartz.impl.StdSchedulerFactory;
  12. /**
  13. * 每隔2秒调用一次job
  14. * 功能:TODO
  15. * 类名:QuartzTest
  16. * 作者:smile
  17. * 时间:Aug 11, 2012:3:25:46 PM
  18. */
  19. public class QuartzTest {
  20. public static void main(String[] args) {
  21. new QuartzTest().run();
  22. }
  23. public void run() {
  24. try {
  25. //Scheduler instances are produced by a SchedulerFactory
  26. SchedulerFactory sf = new StdSchedulerFactory();
  27. Scheduler scheduler = sf.getScheduler();
  28. //JobDetail Conveys the detail properties of a given Job instance. JobDetails are to be created/defined with JobBuilder.
  29. //JobBuilder无构造函数,所以只能通过JobBuilder的静态方法newJob(Class<? extends Job> jobClass)生成JobBuilder实例
  30. //withIdentity(String name,String group)参数用来定义jobKey,如果不设置,也会自动生成一个独一无二的jobKey用来区分不同的job
  31. //build()方法 Produce the JobDetail instance defined by this JobBuilder.
  32. JobDetail job = JobBuilder.newJob(JobTest.class).withIdentity("job1", "group1").build();
  33. //use TriggerBuilder to instantiate an actual Trigger
  34. //withIdentity(String name,String group)参数用来定义TriggerKey,如果不设置,也会自动生成一个独一无二的TriggerKey用来区分不同的trigger
  35. Trigger trigger = TriggerBuilder.newTrigger().withIdentity(new TriggerKey("trigger1", "group1")).startNow()
  36. .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever())
  37. .build();
  38. // Tell quartz to schedule the job using our trigger
  39. scheduler.scheduleJob(job, trigger);
  40. // Start up the scheduler
  41. scheduler.start();
  42. //当前主线程睡眠2秒
  43. System.out.println(Thread.currentThread().getName());
  44. Thread.sleep(30*1000);
  45. // shut down the scheduler
  46. scheduler.shutdown(true);
  47. } catch (SchedulerException e) {
  48. e.printStackTrace();
  49. } catch (InterruptedException e) {
  50. e.printStackTrace();
  51. }
  52. }
  53. }

JobTest.java

Java代码  

  1. package demo01;
  2. import org.quartz.Job;
  3. import org.quartz.JobExecutionContext;
  4. import org.quartz.JobExecutionException;
  5. public class JobTest implements Job{
  6. //Instances of Job must have a public no-argument constructor
  7. public JobTest(){
  8. }
  9. public void execute(JobExecutionContext arg0) throws JobExecutionException {
  10. //看打印出的当前对象每次都不一样,就等于每次执行一次任务都新建一个job实例
  11. System.out.println("我的任务就是调用当前Job:"+this+"不断刷屏!!!");
  12. }
  13. }

控制台打印的结果:

Java代码  

  1. 2012-08-11 08:34:15,512 INFO [org.quartz.impl.StdSchedulerFactory] - Quartz scheduler ‘QuartzTest‘ initialized from default resource file in Quartz package: ‘quartz.properties‘
  2. 2012-08-11 08:34:15,512 INFO [org.quartz.impl.StdSchedulerFactory] - Quartz scheduler version: 2.1.5
  3. 2012-08-11 08:34:15,527 INFO [org.quartz.core.QuartzScheduler] - Scheduler QuartzTest_$_NON_CLUSTERED started.
  4. main
  5. 我的任务就是调用当前Job:demo01.JobTest@1c672d0不断刷屏!!!
  6. 我的任务就是调用当前Job:demo01.JobTest@1855af5不断刷屏!!!
  7. 我的任务就是调用当前Job:demo01.JobTest@198dfaf不断刷屏!!!
  8. 我的任务就是调用当前Job:demo01.JobTest@1858610不断刷屏!!!
  9. 我的任务就是调用当前Job:demo01.JobTest@12498b5不断刷屏!!!
  10. 我的任务就是调用当前Job:demo01.JobTest@1a5ab41不断刷屏!!!
  11. 我的任务就是调用当前Job:demo01.JobTest@18e3e60不断刷屏!!!
  12. 我的任务就是调用当前Job:demo01.JobTest@1a125f0不断刷屏!!!
  13. 我的任务就是调用当前Job:demo01.JobTest@c1cd1f不断刷屏!!!
  14. 我的任务就是调用当前Job:demo01.JobTest@181afa3不断刷屏!!!
  15. 我的任务就是调用当前Job:demo01.JobTest@131f71a不断刷屏!!!
  16. 我的任务就是调用当前Job:demo01.JobTest@15601ea不断刷屏!!!
  17. 我的任务就是调用当前Job:demo01.JobTest@197d257不断刷屏!!!
  18. 我的任务就是调用当前Job:demo01.JobTest@7259da不断刷屏!!!
  19. 我的任务就是调用当前Job:demo01.JobTest@16930e2不断刷屏!!!
  20. 我的任务就是调用当前Job:demo01.JobTest@1add2dd不断刷屏!!!
  21. 2012-08-11 08:34:45,538 INFO [org.quartz.core.QuartzScheduler] - Scheduler QuartzTest_$_NON_CLUSTERED shutting down.
  22. 2012-08-11 08:34:45,538 INFO [org.quartz.core.QuartzScheduler] - Scheduler QuartzTest_$_NON_CLUSTERED paused.
  23. 2012-08-11 08:34:46,023 INFO [org.quartz.core.QuartzScheduler] - Scheduler QuartzTest_$_NON_CLUSTERED shutdown complete.

quantz入门和使用流程(转载)

时间: 2024-12-28 01:51:45

quantz入门和使用流程(转载)的相关文章

Linux系统入门---开机启动流程

目录 Linux系统入门---开机启动流程 一.centos6 二.systemd管理进程 1.查看级别 三.centos7实践案例: 1.案例1:centos7系统,单用户修改root密码 案例2: 如果修改级别 案例3:救援模式 四.修改CentOS7网卡名称为eth0和eth1 1.环境准备 2.用命令配置网卡 方法1: 方法2: 3.系统基本环境优化 五.Systemd 进程管理 1.systemctl管理服务的启动.重启.停止.重载.查看状态等常用命令 2.systemctl设置服务开

嵌入式行业入门指导---知乎转载【转】

此文是本人在知乎上看的,觉得很好就分享出来了,并不是本人原创 转自:https://www.zhihu.com/question/47881392 作者:shang链接:https://www.zhihu.com/question/47881392/answer/146734937来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 嵌入式Linux+Android学习路线图作者:韦东山 本文目录1. 程序员的三大方向 1.1 专业领域 1.1.1 学术研究 1.1.2

Java学习从入门到精通(2) [转载]

Java Learning Path(二).书籍篇 学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握.需要有一个循序渐进的阅读过程.我推荐Oreilly出版的Java系列书籍. 在这里我只想补充一点看法,很多人学习Java是从<Thinking in Java>这本书入手的,但是我认为这本书是不适合初学者的.我认为正确的使用这本书的方法应该是作为辅助的读物.<Thinking in Java>并不是在完整的介绍Java的整个体系,而是一种跳跃式的写作方法,是一种类似t

软件测试自学指南---从入门到精通(转载)

一.软件测试基础知识 要想进入测试这个行业,就必须要了解什么是软件测试,该如何测试?这部分的学习目标:掌握软件测试的基本概念.软件测试的流程,并能熟练的应用常见的用例设计方法来设计测试用例.掌握常见的测试方法和类型,并知道如何进行每个阶段的测试.下面是推荐的参考书:1.软件测试(原书第2版) (美)佩腾(Patton,R.) 著,张小松 等译这本书可以用来作为进入行业的第一本书,本书讲解的都是实用的技术,通过阅读本书可以快速的去学会如何测试软件.个人建议,这本书至少要读3遍以上.看完这本书,自己

ar游戏开发入门三步走 - 转载请保留原文链接:http://www.chinaar.com/ZYJC/2423.html

中国AR网(公众号armeiti):其实我遇到很多像你这样的去做AR开发的.其实现在很多AR开发者根本不懂AR实现原理,因为现在开发AR不需要自己去做底层算法,直接去用成熟的SDK即可.现在AR应用开发门槛不是像以前那么高了,反而好的创意更多的来自内容 ar游戏开发入门一般需要 算法.应用开发.3D美工三部分: 你说的 opencv 主要用与算法部分. java,c# 属于应用开发部分. 国内一般只做后两部分,借助于 高通 或 美桃(Metaio) 的识别算法, 使用 Unity 作为开发平台,

互联网协议入门(一)转载

我们每天使用互联网,你是否想过,它是如何实现的? 全世界几十亿台电脑,连接在一起,两两通信.上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗? 互联网的核心是一系列协议,总称为"互联网协议"(Internet Protocol Suite).它们对电脑如何连接和组网,做出了详尽的规定.理解了这些协议,就理解了互联网的原理. 下面就是我的学习笔记.因为这些协议实在太复杂.太庞大,我想整理一个简洁的框架,帮助自己从总体

互联网协议入门(二)转载

上一篇文章分析了互联网的总体构思,从下至上,每一层协议的设计思想. 这是从设计者的角度看问题,今天我想切换到用户的角度,看看用户是如何从上至下,与这些协议互动的. ============================================================== 互联网协议入门(二) 作者:阮一峰 (接上文) 七.一个小结 先对前面的内容,做一个小结. 我们已经知道,网络通信就是交换数据包.电脑A向电脑B发送一个数据包,后者收到了,回复一个数据包,从而实现两台电脑之间的

Cordys BOP 4平台开发入门实战演练——Until流程建模开发

关于Until流程 Until是BPMN组结构,用于一组活动环节或子流程在条件为真之前执行.不象While组结构,这组活动环节或子流程至少执行一次.Until结构图表示如下图1所示. 图1 Until流程建模实践 (1)Until流程建模 在Business Process Model里画出如图1所示的流程图. (2)流程绑定表单 流程绑定WhileTest表单. (3)创建Message并与表单绑定 图2 (4)流程Start活动设置Input Message (5)配置Until属性Prop

jQueryUI Autocomplete插件使用入门教程(最新版)---------转载

前言: jQuery,无需多作介绍,相信各位读者都应该接触或使用过了.jQuery UI,简而言之,它是一个基于jQuery的前端UI框架.我们可以使用jQuery + jQuery UI非常简单方便地制作出界面美观.功能强大.跨浏览器兼容的前端html界面. 今天,我们就来介绍jQuery UI中一个功能非常强大的部件Autocomplete. Autocomplete,是一个功能强大的自动完成输入的jQuery插件,它也是jQuery UI的一部分.相信用过百度或者Google搜索的读者一定