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文件配置内容例如以下:

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

log4j.properties配置内容例如以下:

  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

  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

  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. }

控制台打印的结果:

  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入门和使用流程(转载)的更多相关文章

  1. JBPM4入门——4.封装流程管理的工具类(JbpmUtil)

    本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google 链接: JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流 ...

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

    目录 Linux系统入门---开机启动流程 一.centos6 二.systemd管理进程 1.查看级别 三.centos7实践案例: 1.案例1:centos7系统,单用户修改root密码 案例2: ...

  3. JAVA入门基础及流程控制

    JAVA入门基础及流程控制 数据类型 位 存储单位 eg:0001 0011 八位 字节 byte 处理数据单位 一字节等于八位 eg:1b=0011 0001 类变量: static int num ...

  4. Android 开发 音视频从入门到提高 任务列表 转载

    <Android 音视频从入门到提高 —— 任务列表> 1. 在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 Vi ...

  5. Scrapy简单入门及实例讲解-转载

    Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以 ...

  6. GJM : Python简单爬虫入门(二) [转载]

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  7. Mybatis第一篇【介绍、快速入门、工作流程】

    什么是MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...

  8. SpringMVC第一篇【介绍、入门、工作流程、控制器】

    什么是SpringMVC? SpringMVC是Spring家族的一员,Spring是将现在开发中流行的组件进行组合而成的一个框架!它用在基于MVC的表现层开发,类似于struts2框架 为什么要使用 ...

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

    Java Learning Path(二).书籍篇 学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握.需要有一个循序渐进的阅读过程.我推荐Oreilly出版的Java系列书籍. 在这里我 ...

随机推荐

  1. angularjs自动加载和手动加载

    (一)自动加载 ng-app是angular的一个指令,代表一个angular应用(也叫模块).使用ng-app或ng-app=""来标记一个DOM结点,让框架会自动加载.也就是说 ...

  2. python 爬取36K新闻

    代码如下: from urllib import request url = 'http://36kr.com/api/info-flow/newsflash_columns/newsflashes? ...

  3. Step by Step 使用HTML5开发一个星际大战游戏(1)

    本系列博文翻译自以下文章 http://blog.sklambert.com/html5-canvas-game-panning-a-background/ Languages: HTML5, Jav ...

  4. Jenkins持续集成实战总结

    原文:https://my.oschina.net/CandyDesire/blog/341331#comment-list 持续集成 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何 ...

  5. UITextField 如何设置为密码方式显示?

    UITextField 怎么设置成为一个 *号密码框 呢? 可以在 Interface Builder 里面直接设置吗? Attributes inspector 中 Text Field 下选中 S ...

  6. SQL注入之导出WebShell

    已经听N个人过说有人已经发现SQL注入Access得到webshell的技术了,也只是听说而已,具体的细节还是不得而知. 最近在看的书中一章提到Jet的安全,然后灵光一闪,呵呵,发现了一种可以利用ac ...

  7. 基于3D Vision眼镜的OSG立体显示 【转】

    http://blog.csdn.net/qq_20038925/article/details/50510565 OSG 立体显示 3D Vision眼镜:所实现的是被动立体. 1.本人最近在做os ...

  8. Shell--命令执行的判断依据:;,&&,||

    :在命令与命令中间利用分号来隔开,这样一来,分号前得命令执行完后就会立刻接着执行后面的命令了 &&若第一个命令执行完毕并且正确执行也就是$?=0,则开始执行后一个命令,否则不执行 || ...

  9. spring常用的一些注解以及注解注入总结

    常用的spring注解有如下几种: @Controller@Service@Autowired@RequestMapping@RequestParam@ModelAttribute@Cacheable ...

  10. mui 跨域请求

    <ul class="mui-table-view" style="margin-top: 25px;"> <li class="m ...