quartz任务调度框架的简单使用
2012-11-24 10:45
501 查看
前言
最近做了一个任务调度的功能,使用的是quartz框架,非常简单易用。
正题
简介
Quartz是一个完全由java编写的开源作业调度框架,它可以与J2EE与J2SE应用程序相结合也可以单独使用。
说简单些,就是它可以定时的调用你的任务(任务里面可以写你自己的逻辑或者调用你其他的模块或流程)。
简单应用
quartz应用非常简单,搭好环境后只需要写一个实现job接口的实现类即可。
1、环境搭建
新建一个java项目,引入以下jar包:
quartz2.1.1.jar(这个jar包会用到下面几个jar)
Log4j-1.2.16.jar
Slf4j-api-1.6.1.jar
Slf4j-log4j12-1.6.1.jar
2、新建一个任务类(实现job接口)
MyJob.java:(放在job包下)
3、新建一个测试类
TestJob.java:
4、运行结果:
quartz整个的使用很简单,唯一不太好理解的就是它的corn表达式,我简单说一下,corn表达式一般有六个(年份可以不写),依次是:秒
分 时
天 星期
月( 年份);注意每一个时间间隔中间都有一个空格,不标明的可以使用*号,比如每隔5秒执行一次就是“5
* * ? * *",详细的解释可见http://blog.csdn.net/kkdelta/article/details/7238581
附件源码下载
最近做了一个任务调度的功能,使用的是quartz框架,非常简单易用。
正题
简介
Quartz是一个完全由java编写的开源作业调度框架,它可以与J2EE与J2SE应用程序相结合也可以单独使用。
说简单些,就是它可以定时的调用你的任务(任务里面可以写你自己的逻辑或者调用你其他的模块或流程)。
简单应用
quartz应用非常简单,搭好环境后只需要写一个实现job接口的实现类即可。
1、环境搭建
新建一个java项目,引入以下jar包:
quartz2.1.1.jar(这个jar包会用到下面几个jar)
Log4j-1.2.16.jar
Slf4j-api-1.6.1.jar
Slf4j-log4j12-1.6.1.jar
2、新建一个任务类(实现job接口)
MyJob.java:(放在job包下)
package job; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class MyJob implements Job { @Override public void execute(JobExecutionContext arg0) throws JobExecutionException { System.out.println("我的任务"); } }
3、新建一个测试类
TestJob.java:
import static org.quartz.CronScheduleBuilder.cronSchedule; import static org.quartz.JobBuilder.newJob; import static org.quartz.TriggerBuilder.newTrigger; import job.MyJob; import org.quartz.CronTrigger; import org.quartz.JobDetail; import org.quartz.JobKey; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SchedulerFactory; import org.quartz.impl.StdSchedulerFactory; public class TestJob { private static Scheduler sched = null; /** * @param args * @throws SchedulerException */ public static void main(String[] args) throws SchedulerException { TestJob t = new TestJob(); t.useJob(); t.addJob("myjob1", "5 * * ? * *", MyJob.class);//启动任务,每隔5s执行一次MyJob任务 // t.deleteJob("myjob1");//停止任务 } /** * 启动Schedule * @throws SchedulerException */ public void useJob() throws SchedulerException{ SchedulerFactory sf = new StdSchedulerFactory(); try { sched = sf.getScheduler(); sched.start(); } catch (SchedulerException e) { e.printStackTrace(); } } /** * 任务中添加作业 * @param jobName 任务名称,可以自己命名 * @param spaceTime corn表达式,调用的时间,例如“5 * * ? * *” * @param clazz job实现类 */ public void addJob(String jobName,String spaceTime,Class clazz){ String groupName = jobName; JobDetail jobs = newJob(clazz).withIdentity(jobName,groupName).build(); CronTrigger trigger; try { if(sched.isShutdown()){ sched.start(); } trigger = newTrigger().withIdentity(jobName+groupName, groupName).withSchedule(cronSchedule(spaceTime)).build(); sched.scheduleJob(jobs, trigger); } catch (Exception e) { e.printStackTrace(); new Exception(e); } } /** * 在任务中删除改作业 * @param jobName */ public void deleteJob(String jobName){ String groupName = jobName; try { if(sched.isShutdown()){ sched.start(); }else{ JobKey key = new JobKey(jobName,groupName); sched.deleteJob(key); } } catch (SchedulerException e) { e.printStackTrace(); new Exception(e); } } }
4、运行结果:
quartz整个的使用很简单,唯一不太好理解的就是它的corn表达式,我简单说一下,corn表达式一般有六个(年份可以不写),依次是:秒
分 时
天 星期
月( 年份);注意每一个时间间隔中间都有一个空格,不标明的可以使用*号,比如每隔5秒执行一次就是“5
* * ? * *",详细的解释可见http://blog.csdn.net/kkdelta/article/details/7238581
附件源码下载
相关文章推荐
- Quartz_1_简单编程式任务调度使用(SimpleTrigger)
- Quartz.Net的使用(简单配置方法)定时任务框架
- Java项目中使用Quartz开源任务调度框架(SSH项目)
- spring中使用Quartz任务调度框架
- Quartz.Net的使用(简单配置方法)定时任务框架
- 使用Quartz2.1.6+Spring3.0实现任务调度简单示例
- Quartz_2_简单编程式任务调度使用(CronTrigger)
- Quartz.Net的使用(简单配置方法)定时任务框架
- Spring学习(十五)使用quartz子框架实现任务调度
- 使用Quartz2.1.6+Spring3.0实现任务调度简单示例
- (转)Java任务调度框架Quartz入门教程指南(二) 使用job、trigger、schedule调用定时任务
- 使用Quartz2.1.6+Spring3.0实现任务调度简单示例
- quartz任务调度框架的使用
- 企业级任务调度框架Quartz(3) 一个简单的Quartz 例子
- 使用Quartz2.1.6+Spring3.0实现任务调度简单示例
- Java任务调度框架Quartz入门教程指南(二) 使用job、trigger、schedule调用定时任务
- Spring与Quartz集成实现定时调度任务的简单使用
- Quartz.Net的使用(简单配置方法)定时任务框架
- 使用Quartz2.1.6+Spring3.0实现任务调度简单示例
- 使用Spring来实现任务计划服务三:集成quartz任务调度框架