概述:

  在实际开发过程中,会遇到很多任务调度的需求。

  比如说:某网站要在每周一上午9点更新网站数据,并发邮件通知用户;

  再比如某论坛需求:每隔半个小时生成精华文章的RSS文件,每天凌晨统计论坛用户的积分排名,每隔30分钟执行锁定用户解锁任务。

  这时就可以使用quartz来实现了。

几个重要的类:

  ●Job(接口)

  1. public interface Job {
  2. void execute(JobExecutionContext var1) throws JobExecutionException;
  3. }

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

Example:

  

  1. public class MyJob implements Job{
  2.  
  3. @Override
  4. public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
  5. System.out.println("测试quartz"+new Date());
  6. }
  7.  
  8. //SimpleTrigger
  9. public static void simpleTrigger(){
  10.  
  11. //获得schedulerFactory用来产生scheduler对象
  12. SchedulerFactory sf=new StdSchedulerFactory();
  13. Scheduler sche=null;
  14.  
  15. //定义一个job,并绑定自己定义的MyJob类;利用反射实例化一个JobDetail类
  16. JobDetail jobDetail= JobBuilder.newJob(MyJob.class).withIdentity("test_job1","group1").build();
  17.  
  18. //定义一个触发器
  19. Trigger trigger= TriggerBuilder.newTrigger().withIdentity("trigger_1","group1")
  20. .startNow()
  21. .withSchedule(SimpleScheduleBuilder.simpleSchedule()
  22. .withIntervalInSeconds(5) //重复间隔
  23. .withRepeatCount(5)) //重复次数
  24. .build();
  25.  
  26. try {
  27. //利用schedulerFactory产生scheduler对象
  28. sche=sf.getScheduler();
  29. //将jobDetail和trigger放入scheduler
  30. sche.scheduleJob(jobDetail,trigger);
  31. sche.start();
  32.  
  33. } catch (SchedulerException e) {
  34. e.printStackTrace();
  35. }
  36. finally{
  37. try {
  38. sche.shutdown(true); //关闭调度
  39. } catch (SchedulerException e) {
  40. e.printStackTrace();
  41. }
  42. }
  43. }
  44. }

任务调度 Quartz 学习(一) SimpleTrigger的更多相关文章

  1. 任务调度 Quartz 学习(二) CronTrigger

    在Quartz中Trigger有 SimpleTrigger与CronTrigger两种: SimpleTrigger:当需要的是一次性的调度(仅是安排单独的任务在指定的时间及时执行),或者你需要在指 ...

  2. 任务调度 Quartz 学习(三) CronTrigger 表达式

    CronTrigger CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表. CronT ...

  3. Java任务调度开源框架quartz学习

    一.quartz学习 Java框架介绍:Quartz从入门到进阶 http://edu.yesky.com/edupxpt/233/2209233.shtml 1.例子:http://javacraz ...

  4. Quartz学习笔记:基础知识

    Quartz学习笔记:基础知识 引入Quartz 关于任务调度 关于任务调度,Java.util.Timer是最简单的一种实现任务调度的方法,简单的使用如下: import java.util.Tim ...

  5. Quartz学习——Spring和Quartz集成详解(三)

    Spring是一个很优秀的框架,它无缝的集成了Quartz,简单方便的让企业级应用更好的使用Quartz进行任务的调度.下面就对Spring集成Quartz进行简单的介绍和示例讲解!和上一节 Quar ...

  6. Quartz学习-- quartz基本介绍和 Cron表达式

    Quartz学习 一. Quartz 大致简介 Quartz 是完全由 java 开发的一个开源的任务日程管理系统 ​任务日程管理系统 换句话说就是: ​ 一个预先确定的日程时间到达时,负责执行任务的 ...

  7. Quartz学习--二 Hello Quartz! 和源码分析

    Quartz学习--二  Hello Quartz! 和源码分析 三.  Hello Quartz! 我会跟着 第一章 6.2 的图来 进行同步代码编写 简单入门示例: 创建一个新的java普通工程 ...

  8. Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解(转)

    通过前面的学习,你可能大致了解了Quartz,本篇博文为你打开学习SSMM+Quartz的旅程!欢迎上车,开始美好的旅程! 本篇是在SSM框架基础上进行的. 参考文章: 1.Quartz学习——Qua ...

  9. Quartz学习笔记:集群部署&高可用

    Quartz学习笔记:集群部署&高可用 集群部署 一个Quartz集群中的每个节点是一个独立的Quartz应用,它又管理着其他的节点.这就意味着你必须对每个节点分别启动或停止.Quartz集群 ...

随机推荐

  1. 第八章 IO库

    8.1&&8.2 #include <iostream> #include <vector> #include <string> using nam ...

  2. Mishka and Contest(模拟水题)

    Mishka started participating in a programming contest. There are nn problems in the contest. Mishka' ...

  3. c语言乐曲演奏——《千本樱》

    这个程序着实花费了我好长的时间,我本身对音乐一窍不通,先是跟着girl friend学习了简谱,根据c调44拍的<千本樱>写下了下面的程序. #include<stdio.h> ...

  4. windows下cudnn的安装过程

    在CUDA安装成功之后,系统环境变量中会有如下两个变量显示:CUDA_PATH和CUDA_PATH_8 在安装完CUDA之后,到官网下载与其版本对应的CUDNN        下载地址:https:/ ...

  5. 福州大学软工1816 | K班 第一次作业

    (一)回想一下你初入大学时对计算机专业的畅想 (1)当初你是如何做出选择计算机专业的决定的? 本身对于计算机感兴趣.高考完之后翻了书,对于物理数学等基础学科兴趣不大,对金融等商科几乎毫无了解,再加上当 ...

  6. 简介Kafka Streams

    本文从以下几个方面介绍Kafka Streams: 一. Kafka Streams 背景 二. Kafka Streams 架构 三. Kafka Streams 并行模型 四. Kafka Str ...

  7. python redis插件安装

    #tar xvzf redis-py-2.2.1.tar.gz #cd redis-py-2.2.1 #python setup.py install   附件: https://app.yinxia ...

  8. dev_queue_xmit 发生了什么?skb还会在哪里缓存

    见 codebox/net/qdisk/xmit.log中保存了一份记录 调用关系 sch_direct_xmit --> dev_hard_start_xmit --> xmit_one ...

  9. DELPHI enablecontrols,disablecontrols函数

    DisableControls方法是在程序修改或后台有刷新记录的时候切断数据组件,如TTABLE.ADOQUERY等等与组件数据源的联系.如果没有切断,数据源中只要一有数据的改动,尤其是批量改动的话, ...

  10. Java调用WebService之Axis实现

    import org.apache.axis.client.Call; import org.apache.axis.client.Service; /** * @ClassName: TestAxi ...