`
dove19900520
  • 浏览: 601512 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

 

分享到:
评论

相关推荐

    深入解读Quartz的原理

    ### 深入解读Quartz的原理 #### 一、Quartz概述 Quartz 是一个功能强大且易于使用的 Java 开源定时任务调度器。它能够触发在指定的时间执行任务(通常称为作业)。Quartz 能够满足从简单的到非常复杂的业务场景...

    Quartz原理及实例

    Quartz原理及实例,spring4.x+Quartz.2.2.1结合的开发,静态和动态实例

    quartz工作原理

    quartz工作原理

    quartz集群调度机制调研及源码分析

    Quartz是一个开源的作业调度框架,它是用Java编写的,可以用于开发在特定时间点或周期性执行任务的应用程序。Quartz的设计目标是支持多个任务调度的集群环境,而不仅仅是在单个应用程序服务器上运行。Quartz集群调度...

    quartz quartz-1.8.6 dbTables 建表sql

    Quartz 是一个开源的作业调度框架,广泛应用于Java应用程序中,用于执行定时任务。它提供了丰富的API和灵活性,使得开发者可以方便地定义、安排和管理各种任务。版本1.8.6是Quartz的一个稳定版本,它包含了对数据库...

    任务调度框架Quartz原理简介

    Quartz是OpenSymphony开源组织的一个Java开源项目,在2009被Terracotta收购。Quartz官网 Quartz任务调度的主要元素有: Trigger(触发器) Scheduler(任务调度器) Job(任务) 其中Tri

    quartz-2.2.3版本的quartz初始化sql语句

    Quartz是一款广泛使用的开源任务调度框架,它允许开发者在Java应用程序中定义和执行定时任务。在Quartz 2.2.3版本中,初始化数据库是使用Quartz的关键步骤,因为Quartz依赖于一个持久化存储来保存作业和触发器的信息...

    Quartz 线程池

    本文将深入探讨 Quartz 线程池的工作原理、配置以及如何在实际项目中应用。 ### 一、Quartz 线程池的基本概念 线程池是计算机科学中的一个概念,主要用于管理多个并发运行的线程。在 Quartz 中,线程池负责处理由 ...

    quartz_2.3.0 SQL脚本

    Quartz 是一个开源的作业调度框架,广泛应用于Java应用程序中,用于执行定时任务。它允许开发者灵活地定义作业和触发器,实现复杂的时间调度。在2.3.0这个版本中,Quartz 提供了针对不同数据库系统的初始化脚本,...

    Android studio下的quartz工程

    **Android Studio下的Quartz工程详解** Quartz是一个开源的作业调度框架,广泛应用于Java环境中的任务调度。在Android Studio中使用Quartz,可以为应用程序添加定时执行的任务功能,例如定期发送通知、更新数据或者...

    quartz创建表sql

    Quartz 是一个开源的作业调度框架,广泛应用于Java企业级应用中,用于自动化任务执行,如定时触发工作流、发送邮件、数据同步等。在Quartz的部署和配置过程中,为了存储作业和触发器的信息,我们需要在关系型数据库...

    Quartz.NET 官方源码及演示例子

    7. **src**:源代码目录,包含Quartz.NET的源码,开发者可以查看和学习其内部工作原理。 8. **lib**:库文件夹,可能包含Quartz.NET依赖的外部库。 9. **doc**:文档目录,可能有API参考、用户指南等帮助材料。 *...

    Quartz 批量下载源码

    Quartz 批量下载源码,Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码

    quartz实例,quartz入门例子

    Quartz是一款开源的作业调度框架,它允许开发者创建、组织和执行计划任务。这个实例是为初学者设计的,用于帮助理解Quartz的基本概念和使用方式。在MyEclipse 6.0.1环境下,你可以直接运行这个Spring整合Quartz的...

    quartz-2.3.2-API文档-中文版.zip

    赠送jar包:quartz-2.3.2.jar; 赠送原API文档:quartz-2.3.2-javadoc.jar; 赠送源代码:quartz-2.3.2-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.2.pom; 包含翻译后的API文档:quartz-2.3.2-javadoc-API...

    对Quartz的简单封装

    Quartz的工作原理是通过定义Job(任务)和Trigger(触发器)来安排任务。Job是实际执行的任务,而Trigger则定义了何时启动这个任务。你可以创建自定义的Job类来实现特定业务逻辑,并通过Trigger设置触发时间,如每天...

    quartz动态任务管理

    学习和理解这个源码包,可以帮助你深入理解Quartz的工作原理,以及如何在实际项目中灵活运用。通过分析和实践,你可以掌握如何创建动态任务,如何根据业务需求调整任务执行策略,以及如何进行错误处理和监控。这将对...

    Quartz.NET-2.0

    这就是Quartz.NET怎样能并发运行多个作业的原理。Quartz.NET依赖一套松耦合的线程池管理部件来管理线程环境。作业是一个执行任务的简单.NET类。只需实现Quartz.IJob接口,IJob接口包含唯一的一个方法Execute(),作业...

    Quartz-1.8.6 CSDN 下载

    Quartz框架的核心是调度器。调度器负责管理Quartz应用运行时环境。调度器不是靠自己做所有的工作,而是依赖框架...这就是Quartz怎样能并发运行多个作业的原理。 Quartz依赖一套松耦合的线程池管理部件来管理线程环境。

    quartz和spring-quartz

    Quartz和Spring-Quartz是两个在Java世界中广泛使用的定时任务管理框架。Quartz是一个开源的作业调度框架,允许应用程序定义和调度任务在特定时间执行。而Spring-Quartz则是Spring框架对Quartz的集成,它使得在Spring...

Global site tag (gtag.js) - Google Analytics