任务调度 Quartz 学习(一) SimpleTrigger
概述:
在实际开发过程中,会遇到很多任务调度的需求。
比如说:某网站要在每周一上午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的更多相关文章
- 任务调度 Quartz 学习(二) CronTrigger
		在Quartz中Trigger有 SimpleTrigger与CronTrigger两种: SimpleTrigger:当需要的是一次性的调度(仅是安排单独的任务在指定的时间及时执行),或者你需要在指 ... 
- 任务调度 Quartz 学习(三) CronTrigger 表达式
		CronTrigger CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表. CronT ... 
- Java任务调度开源框架quartz学习
		一.quartz学习 Java框架介绍:Quartz从入门到进阶 http://edu.yesky.com/edupxpt/233/2209233.shtml 1.例子:http://javacraz ... 
- Quartz学习笔记:基础知识
		Quartz学习笔记:基础知识 引入Quartz 关于任务调度 关于任务调度,Java.util.Timer是最简单的一种实现任务调度的方法,简单的使用如下: import java.util.Tim ... 
- Quartz学习——Spring和Quartz集成详解(三)
		Spring是一个很优秀的框架,它无缝的集成了Quartz,简单方便的让企业级应用更好的使用Quartz进行任务的调度.下面就对Spring集成Quartz进行简单的介绍和示例讲解!和上一节 Quar ... 
- Quartz学习-- quartz基本介绍和 Cron表达式
		Quartz学习 一. Quartz 大致简介 Quartz 是完全由 java 开发的一个开源的任务日程管理系统 任务日程管理系统 换句话说就是:  一个预先确定的日程时间到达时,负责执行任务的 ... 
- Quartz学习--二  Hello Quartz! 和源码分析
		Quartz学习--二 Hello Quartz! 和源码分析 三. Hello Quartz! 我会跟着 第一章 6.2 的图来 进行同步代码编写 简单入门示例: 创建一个新的java普通工程 ... 
- Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解(转)
		通过前面的学习,你可能大致了解了Quartz,本篇博文为你打开学习SSMM+Quartz的旅程!欢迎上车,开始美好的旅程! 本篇是在SSM框架基础上进行的. 参考文章: 1.Quartz学习——Qua ... 
- Quartz学习笔记:集群部署&高可用
		Quartz学习笔记:集群部署&高可用 集群部署 一个Quartz集群中的每个节点是一个独立的Quartz应用,它又管理着其他的节点.这就意味着你必须对每个节点分别启动或停止.Quartz集群 ... 
随机推荐
- 关于css的总结
			写在前面 ,学好css,需要长期的推敲和积累 ,细节是不断完善的,逐渐形成自己的风格 让自己的css更加接近优雅. 下面来总结一些我觉得比较好的css代码风格 : 1. 一般网页中的背景 用 ... 
- 今年暑假不AC (贪心)
			Description “今年暑假不AC?” “是的.” “那你干什么呢?” “看世界杯呀,笨蛋!” “@#$%^&*%...” 确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会 ... 
- 常用算法Java实现之冒泡排序
			冒泡排序是所有排序算法中最基本.最简单的一种.思想就是交换排序,通过比较和交换相邻的数据来达到排序的目的. 具体流程如下: 1.对要排序的数组中的数据,依次比较相邻的两个数据的大小. 2.如果前面的数 ... 
- VS2013运行C++报错:This function or variable may be unsafe. Consider using fopen_s instead.
			在vs2013中运行时发生的关于方法调用的不安全错误. 1.更换方法,但是有些方法更改后参数不变,所以可能比较麻烦. 2.添加一条预处理器定义: 点击项目——>属性——>c/c++——&g ... 
- 关于GenericJDBCException的问题
			在spring和hibernate整合的初步阶段,还没有编辑hibernate.cfg.xml这个文件,只有一个beans.xml文件.此时遇到了一个bug. Exception in thread ... 
- python学习第一天-语法学习
			1.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写能够解释Python语言语法的解释器.Python这个名字,来自 ... 
- OSG学习:使用已有回调示例
			回调的类型有很多种,一般很容易就想到的是UpdateCallBack,或者EventCallBack,回调的意思就是说,你可以规定在某件事情发生时启动一个函数,这个函数可能做一些事情.这个函数就叫做回 ... 
- MVC4+EF5  edmx代码分析
			本文分析Entity Framework(EF)从数据库自动生成的模型文件代码(扩展名为edmx). 一. 概述 本文使用的数据库结构尽量简单,只有2个表,一个用户表和一个分公司表(相当于部门表),一 ... 
- 3dContactPointAnnotationTool开发日志(九)
			今天的任务是实现选中接触点功能并添加模型或接触点的属性改变功能,先从最简单的位置x,y,z改变入手,于是创建了一个面板(PanelStatus),添加了几个InputField来让用户输入数值改变 ... 
- C语言的世界
			大家好,我是一名大一的学生,我叫陈由钧,我来自计算机系,一开始选择这门专业的时候,是出于对计算机的热爱,我喜欢计算机,喜欢没事琢磨琢磨计算的各种程序,各种软件,所以我选择学习计算机这门专业,第一周我就 ... 
