概述:

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

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

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

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

几个重要的类:

  ●Job(接口)

public interface Job {
void execute(JobExecutionContext var1) throws JobExecutionException;
}

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

Example:

  

public class MyJob implements Job{

    @Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("测试quartz"+new Date());
} //SimpleTrigger
public static void simpleTrigger(){ //获得schedulerFactory用来产生scheduler对象
SchedulerFactory sf=new StdSchedulerFactory();
Scheduler sche=null; //定义一个job,并绑定自己定义的MyJob类;利用反射实例化一个JobDetail类
JobDetail jobDetail= JobBuilder.newJob(MyJob.class).withIdentity("test_job1","group1").build(); //定义一个触发器
Trigger trigger= TriggerBuilder.newTrigger().withIdentity("trigger_1","group1")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(5) //重复间隔
.withRepeatCount(5)) //重复次数
.build(); try {
//利用schedulerFactory产生scheduler对象
sche=sf.getScheduler();
//将jobDetail和trigger放入scheduler
sche.scheduleJob(jobDetail,trigger);
sche.start(); } catch (SchedulerException e) {
e.printStackTrace();
}
finally{
try {
sche.shutdown(true); //关闭调度
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}
}

任务调度 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. [C++] OOP - Access Control and Class Scope

    Access Control And Inheritance Protected Member Like private, protected members are unaccessible to ...

  2. svn升级(mac)

    原文链接:http://www.jianshu.com/p/c81712ecccb8 升级前 svn版本1.7.20 升级之后 1.9.2 步骤: 1. 下载最新版svn,链接:http://www. ...

  3. Crawling is going on - Beta版本测试报告

    [Crawling is going on - Beta版本] 测试报告 文件状态: [] 草稿 [√] 正式发布 [] 正在修改 报告编号: 当前版本: 2.0.2 编写人: 周萱.刘昊岩.居玉皓 ...

  4. JavaScript控制href属性进行钓鱼

    前一阵子,发现JavaScript中允许临时改变<a>标签的href属性,当改变其属性后你点击它可能看不出有多严重,但是,它可以通过欺骗手段来诱骗用户透露他们的详细资料. // Uncom ...

  5. Swift-重写(Override)

    子类可以为继承来的实例方法(instance method),类方法(class method),实例属性(instance property),或附属脚本(subscript)提供自己定制的实现(i ...

  6. ManagementObjectSearcher的使用

    1.获取本地路径的网络访问地址 private IEnumerable<KeyValuePair<string, string>> GetShareFolders() { va ...

  7. ismember matlab

    ismember 判断A中的元素在B中有没有出现 LIA = ismember(A,B) for arrays A and B returns an array of the same size as ...

  8. Give NetScaler a “Tune-Up”

    Give NetScaler a “Tune-Up” https://www.citrix.com/blogs/2014/10/21/give-netscaler-a-tune-up/ To Opti ...

  9. NOIP2017 列队——平衡树

    平衡树蒟蒻,敲了半天. 其实思路很简单,就是把许多个人合并成一个区间.必要的时候再拆开.(是不是和这个题的动态开点线段树有异曲同工之妙?) 每次操作最多多出来6个点. 理论上时间复杂度是nlogn,空 ...

  10. Eclipse配置web开发环境

    eclipse的web配置: eclipse:Eclipse Java EE IDE for Web Developers. Version: Helios Service Release 1 下载地 ...