Quartz原理浅析

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();
		}
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值