`
liumayulingyan
  • 浏览: 155619 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

Quartz定时任务学习(一)简单任务

 
阅读更多

转载:http://hi.baidu.com/xulin_1027/item/127dbc9142626c1e924f41f1

 

学习quartz首先了解三个概念:

 

调度器:负责调度作业和触发器;

触发器:设置作业执行的时间、参数、条件等;(简单触发器和Cron触发器)

作业:定时任务内容,被执行的程序;

 

下载必要的jar包,直接去官网下载,将quartz-x.x.x.jar 和core 和/或 optional 文件夹中的 jar 文件放在项目的文件夹或项目的类路径中

 

Quartz的几个核心的接口和类为: 

 

Job接口:自己写的“定时程序”实现此接口的void execute(JobExecutionContext arg0)方法,Job还有一类为有状态的StatefulJob接口,如果我们需要在上一个作业执行完后,根据其执行结果再进行下次作业的执行,则需要实现此接口。

 

Trigger抽象类:调度类(Scheduler)在时间到时调用此类,再由trigger类调用指定的定时程序。Quertz中提供了两类触发器为:SimpleTrigger,CronTrigger。前者用于实现比较简单的定时功能,例如几点开始,几点结束,隔多长时间执行,共执行多少次等,后者提供了使用表达式来描述定时功能,因此适用于比较复杂的定时描述,例如每个月的最后一个周五,每周的周四等。

 

JobDetail类:具体某个定时程序的详细描述,包括Name,Group,JobDataMap等。

 

JobExecutionContext类:定时程序执行的run-time的上下文环境,用于得到当前执行的Job的名字,配置的参数等。

 

JobDataMap类:用于描述一个作业的参数,参数可以为任何基本类型例如String,float等,也可为某个对象的引用.

 

JobListener,TriggerListener接口:用于监听触发器状态和作业扫行状态,在特写状态执行相应操作。

 

JobStore类:在哪里执行定进程序,可选的有在内存中,在数据库中。

 

 

开始:边看例题边学习,首先从简单触发器开始……

1、作业通过实现 org.quartz.job 接口,可以使 Java 类变成可执行的。这个类用一条非常简单的输出语句覆盖了 execute(JobExecutionContext context) 方法。

import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class SimpleQuartzJob implements Job {

    public SimpleQuartzJob() {
    }

    public void execute(JobExecutionContext context) throws JobExecutionException {
        System.out.println("In SimpleQuartzJob - executing its JOB at " 
                + new Date() + " by " + context.getTrigger().getName());
    }
}

 

2、触发器和调度器

public void task() throws SchedulerException
    {
        //通过SchedulerFactory来获取一个调度器
        SchedulerFactory schedulerFactory = new StdSchedulerFactory();
        Scheduler scheduler = schedulerFactory.getScheduler();
        
        
        
        //引进作业程序
        JobDetail jobDetail = 
        new JobDetail("jobDetail-s1", "jobDetailGroup-s1", SimpleQuartzJob.class);
         //new一个触发器
        SimpleTrigger simpleTrigger = 
        new SimpleTrigger("simpleTrigger", "triggerGroup-s1");

        //设置作业启动时间
        long ctime = System.currentTimeMillis(); 
        simpleTrigger.setStartTime(new Date(ctime));

        //设置作业执行间隔 
        simpleTrigger.setRepeatInterval(10000);
        //设置作业执行次数
        simpleTrigger.setRepeatCount(10);

        //设置作业执行优先级默认为5
        //simpleTrigger.setPriority(10);

        //作业和触发器设置到调度器中
        scheduler.scheduleJob(jobDetail, simpleTrigger);
        
        //启动调度器
        scheduler.start();
    }

 


一个简单的quartz任务就完成了

分享到:
评论

相关推荐

    Quartz定时任务简单列子

    这个"Quartz定时任务简单列子"可能是一个简单的教程或者示例项目,用于展示如何在Java应用中集成和使用Quartz来执行预定的任务。 Quartz的核心概念包括Job(工作)、Trigger(触发器)和Scheduler(调度器)。Job是...

    C# 控制台Quartz定时任务.doc

    【Quartz定时任务】是Java领域的一个强大任务调度框架,但在C#中也有相应的实现,如标题所示,这里讨论的是C#控制台应用中使用Quartz.NET进行定时任务的实现。Quartz.NET允许开发者在应用程序中安排任务在特定时间...

    Quartz定时任务框架

    总之,Quartz定时任务框架为Java开发者提供了一套灵活且功能强大的任务调度解决方案。通过理解其核心组件和API,我们可以方便地创建和管理各种定时任务,以满足各种业务需求。在这个简单的示例中,我们看到了如何每...

    C# Quartz.Net定时任务操作明细、完整过程

    【C# Quartz.Net定时任务操作】Quartz.Net是一款强大的任务调度框架,广泛应用于C#环境下的定时任务管理。本文将详细介绍如何使用Quartz.Net进行定时任务的配置与执行。 首先,**通过Nuget安装框架**非常简单,只需...

    Quartz 定时任务web使用

    Quartz 是一个开源的作业调度框架,常用于Java应用程序中实现定时任务的管理。它提供了丰富的API和功能,使得开发者可以灵活地定义和控制任务的执行。本篇将重点介绍如何在Web环境中集成并使用Quartz,以及相关的...

    分布式quartz定时任务学习

    分布式Quartz定时任务学习是现代企业级应用中一个重要的技术领域,尤其是在大数据处理、系统维护、数据同步等场景下,其重要性不言而喻。Quartz是一个开源的作业调度框架,它允许开发者定义和执行复杂的任务调度策略...

    Quartz定时任务常用的11张数据库脚本表结构

    这里我们将详细探讨Quartz定时任务在数据库中的11张核心表结构。 1. **QRTZ_JOB_DETAILS**:此表存储所有Job的详细信息,如Job类名、Job数据映射等。每个Job实例在此表中对应一条记录,Job的唯一标识由`SCHED_NAME`...

    Quartz定时任务图形界面的系统

    Quartz定时任务图形界面系统是一种基于Java开发的高级任务调度平台,它允许开发者安排和管理应用程序中的各种任务执行。在本系统中,Quartz与其他流行的技术框架如SpringMVC、MyBatis、Thymeleaf和Bootstrap3进行了...

    C#Quartz定时任务

    【C# Quartz定时任务】是基于C#编程语言实现的一种定时任务框架,它允许开发者在.NET环境中创建和管理定时任务。这个项目是在Visual Studio 2010开发环境下编写的,提供了一个可以直接运行的示例(demo),方便快速...

    基于SSM+quartz的定时任务管理demo

    总结,本Demo旨在通过SSM+Quartz的组合,提供一个可扩展的定时任务管理平台,开发者可以根据实际需求,调整任务逻辑和调度策略,以满足各种业务场景。同时,通过学习这个Demo,开发者可以深入理解Java定时任务的实现...

    .net Quartz定时任务实例

    .NET中的Quartz是一个强大的、完全开源的作业调度框架,它为开发者提供了在应用程序中创建和管理定时任务的能力。Quartz可以被集成到任何Java应用程序中,无论是简单的应用程序还是复杂的多服务器集群环境。在这个...

    定时任务quartz及教程

    Quartz是Java领域中广泛应用的一款开源的作业调度框架,它允许开发者在应用程序中安排复杂的定时任务。本教程将深入探讨Quartz的核心概念、配置、API使用以及如何在实际项目中集成和管理定时任务。 一、Quartz核心...

    Quartz定时任务处理案例基于jsp

    这是一个完整的使用Quartz定时处理案例,虽然简单,但是一个可运行的案例项目,包括了Quartz的包,及配置文件quartz.properties和quartz_jobs.xml文件的配置方法,及在web.xml文件中配置Quartz等方法。看了这个例子...

    Spring 框架自带定时任务和Quartz定时任务

    总结来说,定时任务是开发者常用的一种工具,它的实现方式多样,从简单的Java Timer到强大的Quartz框架都有涉及。Spring框架提供了Spring Task来实现定时任务,它简单易用,能够覆盖大部分常规需求。对于复杂的调度...

    quartz定时任务

    在“quartz定时任务”这个主题中,我们将深入探讨Quartz的核心特性、如何配置和使用它,以及如何实现集群。 1. **Quartz的核心特性** - **灵活的调度**:Quartz支持多种调度模式,如简单触发器、cron触发器和Nth...

    spring+springMVC+mybatis+quartz动态定时任务创建

    在IT行业中,构建高效、可扩展的Web应用是至关重要的,而"spring+springMVC+mybatis+quartz动态定时任务创建"就是一个常见的技术栈,用于实现这样的目标。这个组合充分利用了各组件的优势,提供了强大的后端服务支持...

    定时任务完整案例 Java quartz

    中的"完整的定时任务案例,导入Eclipse或者MyEclipse即可使用"意味着这个压缩包包含了一个可以运行的示例项目,开发者可以通过导入到Eclipse或MyEclipse这样的IDE中快速理解和学习如何设置和运行Quartz定时任务。...

    quartz 实现按天、按周、按月定时任务的简单demo

    总结起来,这个 demo 展示了如何使用 Quartz 在 Java 应用中创建一个简单的定时任务。通过 Job 和 Trigger 的组合,我们可以灵活地设置任务的执行时间,包括按天、按周和按月的调度。理解并熟练运用 Quartz,对于...

    maven-quartz(定时任务)最简单版本

    2. 启动应用,确认Quartz定时任务是否按预期执行。 【注意事项】 1. 调度器的生命周期管理:在生产环境中,需要确保Quartz在应用启动时启动,应用关闭时停止,以防止资源泄漏。 2. 任务并发控制:如果你的定时任务...

    quartz定时任务Demo,直接可运行

    这个"quartz定时任务Demo"是一个可以直接在Eclipse集成开发环境中运行的实例,它提供了清晰的注释,方便初学者理解和学习。 1. **Quartz基本概念** - **Job**:作业是实际执行的任务,是实现了`org.quartz.Job`...

Global site tag (gtag.js) - Google Analytics