Java任务调度框架Quartz
转自:http://blog.csdn.net/yuebinghaoyuan/article/details/9045471
public abstract interface Job
{
public abstract void execute(JobExecutionContext paramJobExecutionContext)
throws JobExecutionException;
}
- package com.test;
- import java.util.Date;
- import org.quartz.Job;
- import org.quartz.JobExecutionContext;
- import org.quartz.JobExecutionException;
- /**
- * 需要执行的任务
- * @author lhy
- *
- */
- public class MyJob implements Job {
- @Override
- //把要执行的操作,写在execute方法中
- public void execute(JobExecutionContext arg0) throws JobExecutionException {
- System.out.println("测试Quartz"+new Date());
- }
- }
使用SimpleTrigger触发器
- package com.test;
- import java.util.Date;
- import org.quartz.JobDetail;
- import org.quartz.Scheduler;
- import org.quartz.SchedulerException;
- import org.quartz.SchedulerFactory;
- import org.quartz.SimpleTrigger;
- import org.quartz.impl.StdSchedulerFactory;
- /**
- * 调用任务的类
- * @author lhy
- *
- */
- public class SchedulerTest {
- public static void main(String[] args) {
- //通过schedulerFactory获取一个调度器
- SchedulerFactory schedulerfactory=new StdSchedulerFactory();
- Scheduler scheduler=null;
- try{
- // 通过schedulerFactory获取一个调度器
- scheduler=schedulerfactory.getScheduler();
- // 创建jobDetail实例,绑定Job实现类
- // 指明job的名称,所在组的名称,以及绑定job类
- JobDetail jobDetail=new JobDetail("job1", "jgroup1", MyJob.class);
- // 定义调度触发规则,比如每1秒运行一次,共运行8次
- SimpleTrigger simpleTrigger=new SimpleTrigger("simpleTrigger","triggerGroup");
- // 马上启动
- simpleTrigger.setStartTime(new Date());
- // 间隔时间
- simpleTrigger.setRepeatInterval(1000);
- // 运行次数
- simpleTrigger.setRepeatCount(8);
- // 把作业和触发器注册到任务调度中
- scheduler.scheduleJob(jobDetail, simpleTrigger);
- // 启动调度
- scheduler.start();
- }catch(SchedulerException e){
- e.printStackTrace();
- }
- }
- }
若使用CornTrigger触发器:
- package com.test;
- import java.util.Date;
- import org.quartz.CronTrigger;
- import org.quartz.JobDetail;
- import org.quartz.Scheduler;
- import org.quartz.SchedulerException;
- import org.quartz.SchedulerFactory;
- import org.quartz.SimpleTrigger;
- import org.quartz.impl.StdSchedulerFactory;
- /**
- * 调用任务的类
- * @author lhy
- *
- */
- public class CronTriggerTest {
- public static void main(String[] args) {
- //通过schedulerFactory获取一个调度器
- SchedulerFactory schedulerfactory=new StdSchedulerFactory();
- Scheduler scheduler=null;
- try{
- // 通过schedulerFactory获取一个调度器
- scheduler=schedulerfactory.getScheduler();
- // 创建jobDetail实例,绑定Job实现类
- // 指明job的名称,所在组的名称,以及绑定job类
- JobDetail jobDetail=new JobDetail("job1", "jgroup1", MyJob.class);
- // 定义调度触发规则,每天上午10:15执行
- CronTrigger cornTrigger=new CronTrigger("cronTrigger","triggerGroup");
- // 执行规则表达式
- cornTrigger.setCronExpression("0 15 10 * * ? *");
- // 把作业和触发器注册到任务调度中
- scheduler.scheduleJob(jobDetail, cornTrigger);
- // 启动调度
- scheduler.start();
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- }
对于2.0.2jar包如下:
- package com.test;
- import java.util.Date;
- import org.quartz.CronScheduleBuilder;
- import org.quartz.JobBuilder;
- import org.quartz.JobDetail;
- import org.quartz.Scheduler;
- import org.quartz.SchedulerException;
- import org.quartz.SchedulerFactory;
- import org.quartz.SimpleScheduleBuilder;
- import org.quartz.Trigger;
- import org.quartz.TriggerBuilder;
- import org.quartz.impl.StdSchedulerFactory;
- /**
- * 调用任务的类
- * @author lhy
- *
- */
- public class SchedulerTest {
- public static void main(String[] args) {
- //通过schedulerFactory获取一个调度器
- SchedulerFactory schedulerfactory=new StdSchedulerFactory();
- Scheduler scheduler=null;
- try{
- // 通过schedulerFactory获取一个调度器
- scheduler=schedulerfactory.getScheduler();
- // 创建jobDetail实例,绑定Job实现类
- // 指明job的名称,所在组的名称,以及绑定job类
- JobDetail job=JobBuilder.newJob(MyJob.class).withIdentity("job1", "jgroup1").build();
- // 定义调度触发规则
- // 使用simpleTrigger规则
- // Trigger trigger=TriggerBuilder.newTrigger().withIdentity("simpleTrigger", "triggerGroup")
- // .withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(1).withRepeatCount(8))
- // .startNow().build();
- // 使用cornTrigger规则 每天10点42分
- Trigger trigger=TriggerBuilder.newTrigger().withIdentity("simpleTrigger", "triggerGroup")
- .withSchedule(CronScheduleBuilder.cronSchedule("0 42 10 * * ? *"))
- .startNow().build();
- // 把作业和触发器注册到任务调度中
- scheduler.scheduleJob(job, trigger);
- // 启动调度
- scheduler.start();
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- }
上述demo下载:1.8版本demo下载
Java任务调度框架Quartz的更多相关文章
- Java任务调度框架Quartz入门
Quartz[kwɔːts]:石英,其框架和名字一样简单朴素又不失魅力,在Java程序界,Quartz大名鼎鼎,很多Java应用几乎都集成或构建了一个定时任务调度系统,Quartz是一个定时任务调度框 ...
- Java任务调度框架Quartz教程实例
介绍: Quartz框架是一个全功能.开源的任务调度服务,可以集成几乎任何的java应用程序—从小的单片机系统到大型的电子商务系统.Quartz可以执行上千上万的任务调度. 核心概念 Quar ...
- Java任务调度框架Quartz教程
一.什么是quartz作业调度? Quartz框架是一个全功能.开源的任务调度服务,可以集成几乎任何的java应用程序—从小的单片机系统到大型的电子商务系统.Quartz可以执行上千上万的任务调度. ...
- (转)Java任务调度框架Quartz入门教程指南(三)任务调度框架Quartz实例详解深入理解Scheduler,Job,Trigger,JobDetail
http://blog.csdn.net/zixiao217/article/details/53053598 首先给一个简明扼要的理解: Scheduler 调度程序-任务执行计划表,只有安排进执行 ...
- (转)Java任务调度框架Quartz入门教程指南(四)Quartz任务调度框架之触发器精讲SimpleTrigger和CronTrigger、最详细的Cron表达式范例
http://blog.csdn.net/zixiao217/article/details/53075009 Quartz的主要接口类是Schedule.Job.Trigger,而触发器Trigge ...
- (转)Java任务调度框架Quartz入门教程指南(二) 使用job、trigger、schedule调用定时任务
http://blog.csdn.net/zixiao217/article/details/53044890 读完第一节,我们已经对Quartz有了一个大体的认识,它可以定时帮我们执行一些处理程序, ...
- 通过源码分析Java开源任务调度框架Quartz的主要流程
通过源码分析Java开源任务调度框架Quartz的主要流程 从使用效果.调用链路跟踪.E-R图.循环调度逻辑几个方面分析Quartz. github项目地址: https://github.com/t ...
- 企业级任务调度框架Quartz(1) --企业应用中的任务调度介绍
由于目前的工作内容为建行CLPM批处理业务的设计工作,所以很好的理解批处理所用的任务调度框架Quartz势在必行:为了能够更好的去服务于工作,也 为了提升自己,所以我学习了Quartz Job Sch ...
- Java任务调度框架之分布式调度框架XXL-Job介绍
Java任务调度框架之分布式调度框架XXL-Job介绍及快速入门 调度器使用场景: Java开发中经常会使用到定时任务:比如每月1号凌晨生成上个月的账单.比如每天凌晨1点对上一天的数据进行对账操作 ...
随机推荐
- Android之多媒体扫描过程
转自:http://blog.csdn.net/yan8024/article/details/6620359下面是系统图 MediaScannerReceiver会在任何的ACTION_B ...
- Rsync服务介绍与配置
Rsync 简要介绍 rsync 是一个用于增量文件传输的开源工具,不得不说,rsync简直是不同服务器间传输文件.同步文件的利器.与FTP相比,它具有非常简单的安装和配置方法.而且,rsync可以只 ...
- 中国计算机学会CCF推荐国际学术会议和期刊目录(PDF版,2015年)
total: CCF推荐国际学术会议和期刊目录(下载) parts: 点击下载: 计算机体系结构并行与分布计算存储系统.pdf 点击下载: 计算机网络.pdf 点击下载: 网络与信息安全.pdf ...
- unity 3D游戏场景转换
//////////////////2015/07/07//////// /////////////////by xbw/////////////// ///////////////环境 unity ...
- 【Handler】Looper 原理 详解 示例 总结
核心知识点 1.相关名词 UI线程:就是我们的主线程,系统在创建UI线程的时候会初始化一个Looper对象,同时也会创建一个与其关联的MessageQueue Handler:作用就是发送与处理信息, ...
- JavaScript中定义对象的四种方式
最近在阅读< JavaScript 高级程序设计>,未免遗忘读过的内容,就打算以博客的形式做些读书笔记.今天介绍的是 JavaScript 中的四种定义对象的方法,除了这四种方法,还有工厂 ...
- Mac下进行基于java服务端语言的微信公众号本地js-sdk调试的大致方法
开发微信公众号应用调用js-sdk,需要先在微信公众号后台配置可信域名,之后从微信的入口地址重定向到改域名下的路径后便会返回code,之后可以拿到一系列需要的参数等等.那么本地开发,如果使用的是PHP ...
- 一直出现 Enter passphrase for key '/root/.ssh/gitkey12.pub'
案例: 我一下没有设置密码的pub key, 一使用就要求: Enter passphrase for key '/root/.ssh/gitkey12.pub', 原因:本该设置私钥的地方,设置 ...
- LeetCode【7】.Reverse Integer--java实现
Reverse Integer 题目要求:给定一个int 类型值,求值的反转,例如以下: Example1: x = 123, return 321 Example2: x = -123, ...
- Windows改桌面文件路径
默认的桌面和用户文件都是C盘,每次重装系统要备份,为了方便可以把它设置到其他盘符,一种方式是通过一些软件功能,如360有一个C盘搬家,也可以修改注册表文件: Windows Registry Edit ...