当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

Quartz原理浅析

发表于: 2013-01-23   作者:dove19900520   来源:转载   浏览:
摘要: Quartz是一个大名鼎鼎的Java版开源定时调度器,功能强悍,使用方便。   一、核心概念   Quartz的原理不是很复杂,只要搞明白几个概念,然后知道如何去启动和关闭一个调度程序即可。   1、Job 表示一个工作,要执行的具体内容。此接口中只有一个方法 void execute(JobExecutionContext cont
Quartz是一个大名鼎鼎的Java版开源定时调度器,功能强悍,使用方便。
 
一、核心概念
 
Quartz的原理不是很复杂,只要搞明白几个概念,然后知道如何去启动和关闭一个调度程序即可。
 
1、Job
表示一个工作,要执行的具体内容。此接口中只有一个方法
void execute(JobExecutionContext context)
 
2、JobDetail
JobDetail表示一个具体的可执行的调度程序,Job是这个可执行程调度程序所要执行的内容,另外JobDetail还包含了这个任务调度的方案和策略。
 
3、Trigger代表一个调度参数的配置,什么时候去调。
 
4、Scheduler代表一个调度容器,一个调度容器中可以注册多个JobDetail和Trigger。当Trigger与JobDetail组合,就可以被Scheduler容器调度了。
 
二、一个最简单入门实例
 
1、任务类:
package com.xxyd.quartz.myself;

import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * 任务类
 * @author dove
 *
 */
public class TimeTask
{
	public void tellTime()
	{
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		System.out.println("北京时间:"+sdf.format(new Date()));
	}
}
 2、任务调度类
package com.xxyd.quartz.myself;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/**
 * 任务调度类
 * @author dove
 *
 */
public class TimeJob implements Job
{

	@Override
	public void execute(JobExecutionContext context) throws JobExecutionException
	{
		TimeTask timeTask = new TimeTask();
		timeTask.tellTime();
	}

}
 3、任务注册及启动
package com.xxyd.quartz.myself;

import java.text.ParseException;

import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;
/**
 * 任务调度测试类
 * @author dove
 *
 */
public class TimeJobTest
{
	public static void main(String[] args) throws ParseException, SchedulerException
	{
		startJob();
	}
	
	public static void startJob() throws SchedulerException, ParseException
	{
		TimeJob timeJob = new TimeJob();
		
		//1、创建JobDetial对象,并为它设置名称,组名称,及执行任务的类
		JobDetail jobDetail = new JobDetail("job1", "jobGroup", timeJob.getClass());
		
		//2创建触发器对象,并为它设置名称,组名称,及任务调度的时间参数
		CronTrigger cronTrigger = new CronTrigger("trigger1", "triggerGroup");
		cronTrigger.setCronExpression("0/5 * * * * ?");
		
		//3、创建Scheduler对象,并配置JobDetail和Trigger对象
		Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
		scheduler.scheduleJob(jobDetail, cronTrigger);
		
		//4、启动触发器,这是必不可少的的步骤
		if(!scheduler.isShutdown())
		{
			scheduler.start();
		}
	}
}

 

Quartz原理浅析

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号