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

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

    震惊

    震惊

编辑推荐
Quartz是一个大名鼎鼎的Java版开源定时调度器,功能强悍,使用方便。 一、核心概念 Quartz的原理不
经过几天的测试,hadoop分布式系统搭建完毕。首先说一下这几天对hadoop理论知识的理解,然后说一下安
原文: http://guoli0813.blog.51cto.com/623863/293138 经过几天的测试,hadoop分布式系统搭建完毕
Netty是JBoss出品的高效的Java NIO开发框架,关于其使用,可参考我的另一篇文章 netty使用初步。本
Netty实现原理浅析 转:http://www.kafka0102.com/2010/06/167.html Posted in framework , java on
GWT中前后台交互有多种方式,包括JSON,XML,RPC 其中RPC是GWT提供给我们的功能,他能够让我们直接在前后
Netty是JBoss出品的高效的Java NIO开发框架,关于其使用,可参考我的另一篇文章 netty使用初步。本
jsp第一次被请求时,jsp引擎把该jsp文件转换成为一个servlet,而这个引擎本身也是一个servlet 1、Js
转载http://www.kafka0102.com/2010/06/167.html Netty是JBoss出品的高效的Java NIO开发框架,关于
Netty是JBoss出品的高效的Java NIO开发框架,关于其使用,可参考我的另一篇文章 netty使用初步 。
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号