定时调度Quartz框架学习小demo
来源:互联网 发布:数据库数据一致性问题 编辑:程序博客网 时间:2024/06/08 14:54
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或 EJBs。Quartz的最新版本为Quartz 2.2.1。不过我之前在网上下载的是1.8.6版本,所以本文中的例子就采用1.8.6来实现。
工程结构目录图如下:
1.导入相关jar包。主要有quartz的核心包quartz-all-1.8.6.jar,还有log4j的相关jar包。
2.实现一个可以被调度的作业Job.创建一个测试作业TestJob类,实现Job接口,实现接口的execute()方法。
package com.lee;import java.util.Date;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;public class TestJob implements Job {private boolean isRunning = false;public void execute(JobExecutionContext context) throws JobExecutionException { if(!isRunning){System.out.println(new Date()+" 作业开始被调度.....");for (int i = 1; i <= 100; i++) {System.out.println(" 作业完成"+i+"%");try {Thread.sleep(100);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}System.out.println(new Date()+" 作业被调度完成.");}else {System.out.println(new Date()+" 作业退出");}}}
3.使用工厂创建调度器实例,用2中的作业创建JobDetail实例,创建触发器trigger,然后用调度器把作业和trigger关联起来,最后调用开始调度的方法。
package com.lee;import org.quartz.JobDetail;import org.quartz.Scheduler;import org.quartz.SchedulerException;import org.quartz.SimpleTrigger;import org.quartz.Trigger;import org.quartz.impl.StdSchedulerFactory;public class MyQuartzServer {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubMyQuartzServer server = new MyQuartzServer();try {server.startScheduale();} catch (SchedulerException e) {// TODO Auto-generated catch blocke.printStackTrace();}}private void startScheduale()throws SchedulerException{//1.使用工厂创建调度器实例Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();//2.以作业创建JobDetail实例JobDetail jobDetail = new JobDetail("dd",Scheduler.DEFAULT_GROUP,TestJob.class);//3.创建trigger,创建一个简单的调度器//指定该任务呗重复调度50次,每次间隔20秒Trigger trigger = new SimpleTrigger("dd",Scheduler.DEFAULT_GROUP, 50, 20000);//4.调度器将作业与trigger关联起来scheduler.scheduleJob(jobDetail, trigger);//5.开始调度scheduler.start();}}
Quartz框架的核心是调度器。调度器负责管理Quartz应用运行时环境。调度器不是靠自己做所有的工作,而是依赖框架内一些非常重要的部件。Quartz不仅仅是线程和线程管理。为确保可伸缩性,Quartz采用了基于多线程的架构。启动时,框架初始化一套worker线程,这套线程被调度器用来执行预定的作业。这就是Quartz怎样能并发运行多个作业的原理。Quartz依赖一套松耦合的线程池管理部件来管理线程环境。(引用自百度百科)
如果有什么好的建议,欢迎留言。谢谢。
0 0
- 定时调度Quartz框架学习小demo
- Quartz定时调度框架
- Quartz 定时 作业调度框架
- quartz定时任务调度学习
- JAVA定时调度框架Quartz使用案例
- SSM框架整合 quartz 定时任务调度
- quartz定时调度框架的使用
- quartz定时任务框架调度机制解析
- SSM框架整合 quartz 定时任务调度
- 任务调度框架Quartz(一) Quartz——一个强大的定时任务调度框架
- Spring Quartz定时调度
- Quartz 定时任务调度
- Quartz定时调度初试
- **Quartz定时调度**
- quartz定时任务调度
- Quartz定时调度
- quartz定时调度
- Quartz定时调度
- Jobdu 题目1078:二叉树遍历
- BNU 34978 汉诺塔 求期望步数
- uva 10012(暴力求解)
- C#中使用OpenCV等库进行图像处理
- 数据库基本知识
- 定时调度Quartz框架学习小demo
- effective c++要点
- google搜索不稳定
- sgu 103(poj 1158) 最短路(含蓝紫灯的最短路)
- 自己总结的排序算法未完成
- ORA-1547一例处理
- 各种图像处理类库的比较及选择(The Comparison of Image Processing Libraries)
- Ubuntu建立PHP服务器(apache+php+mysql)
- [leetcode] Evaluate Reverse Polish Notation