java任务调度(Quartz篇)
1、Timer介绍
建立任务:使用Timer调度的任务应该继承TimerTask抽象类,该类实现Runnable接口,因些具备多线程的能力,实现该接口的run方法,该方法是需要高度的任务执行体。
调度任务:调度任务通过Timer类完成,调度任务通过schedul方法完成,查一下java doc文档:
void schedule(TimerTask task, Date time)
安排在指定的时间执行指定的任务。
void schedule(TimerTask task, Date firstTime, long period)
安排指定的任务在指定的时间开始进行重复的固定延迟执行。
void schedule(TimerTask task, long delay)
安排在指定延迟后执行指定的任务。
void schedule(TimerTask task, long delay, long period)
安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。
2、Quartz介绍
作业:作业是一个执行任务的java类,可以是任何java代码,只需实现org.quartz.job接口即可.Job接口包含一个方法execute(),execute方法体是被调度的作业体。一旦实现Job接口和execute()方法,Quartz确定作业运作的时候,它将调用execute()方法体。
触发器:有SimpleTrigger和CronTrigger两种类型。
调度器:调度器用于将与作业触发器关联,一个作业可关联多个触发器,这样,每个触发器被可以触发的作业执行;一个触发器可用于控制多个作业,触发触发时,全部作业将获得调度。Quartz的调度器由Scheduler接口体现。
3、详细介绍Cron表达式(CronTriggerBean创建是基于Cron表达式的触发器的)
Cron表达式是一个字符串,字符串以5或6个空格隔开,分开工6或7个域,每一个域代表一个含义,Cron有如下两种语法
格式:
Seconds Minutes Hours DayofMonth Month DayofWeek Year 或
Seconds Minutes Hours DayofMonth Month DayofWeek
每一个域可出现的字符如下:
Seconds:可出现,- * / 四个字符,有效范围为0-59的整数
Minutes:可出现,- * / 四个字符,有效范围为0-59的整数
Hours:可出现,- * / 四个字符,有效范围为0-23的整数
DayofMonth:可出现,- * / ? L W C八个字符,有效范围为0-31的整数
Month:可出现,- * / 四个字符,有效范围为1-12的整数或JAN-DEc
DayofWeek:可出现,- * / ? L C #四个字符,有效范围为1-7的整数或SUN-SAT两个范围。1表示星期天,2表示星期一, 依次类推
Year:可出现,- * / 四个字符,有效范围为1970-2099年
每一个域都使用数字,但还可以出现如下特殊字符,它们的含义是:
(1)*:表示匹配该域的任意值,假如在Minutes域使用*,即表示每分钟都会触发事件。
(2)?:只能用在DayofMonth和DayofWeek两个域。它也匹配域的任意值,但实际不会。因为DayofMonth和DayofWeek会相互影响。例如想在每月的20日触发调度,不管20日到底是星期几,则只能使用如下写法: 13 13 15 20 * ?,其中最后一位只能用?,而不能使用*,如果使用*表示不管星期几都会触发,实际上并不是这样。
(3)-:表示范围,例如在Minutes域使用5-20,表示从5分到20分钟每分钟触发一次
(4)/:表示起始时间开始触发,然后每隔固定时间触发一次,例如在Minutes域使用5/20,则意味着5分钟触发一次,而25,45等分别触发一次.
(5),:表示列出枚举值值。例如:在Minutes域使用5,20,则意味着在5和20分每分钟触发一次。
(6)L:表示最后,只能出现在DayofWeek和DayofMonth域,如果在DayofWeek域使用5L,意味着在最后的一个星期四触发。
(7)W:表示有效工作日(周一到周五),只能出现在DayofMonth域,系统将在离指定日期的最近的有效工作日触发事件。例如:在DayofMonth使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发。如果5日是星期天,则在6日触发;如果5日在星期一到星期五中的一天,则就在5日触发。另外一点,W的最近寻找不会跨过月份
(8)LW:这两个字符可以连用,表示在某个月最后一个工作日,即最后一个星期五。
(9)#:用于确定每个月第几个星期几,只能出现在DayofMonth域。例如在4#2,表示某月的第二个星期三。
0 0 2 1 * ? * 表示在每月的1日的凌晨2点调度任务
0 15 10 ? * MON-FRI 表示周一到周五每天上午10:15执行作业
0 15 10 ? 6L 2002-2006 表示200-2006年的每个月的最后一个星期五上午10:15执行作业
分享到:
相关推荐
Quartz是功能强大的开源作业调度库,几乎可以集成到任何Java应用程序中-从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的计划,以执行数以万计,数以万计的工作;任务定义为标准Java组件的...
Quartz是Java中一个强大的开源任务调度库,它允许开发者定义和执行短时或周期性的任务。这个经典例子展示了如何在Java项目中集成并使用Quartz进行任务自动调度。通过以下内容,我们将深入理解Quartz的基本概念、配置...
Java任务调度库Quartz是一个强大的开源任务调度框架,它允许开发者在Java应用程序中安排复杂的作业执行。本实例提供了一个简洁的、易于理解的Quartz应用示例,旨在帮助开发者快速集成到自己的项目中。 首先,Quartz...
本篇文章将深入探讨如何使用Quartz在Java应用程序中实现任务调度。 Quartz库提供了一个灵活的API,可以创建、调度和管理任务,这些任务被称为Job。每个Job都与一个Trigger关联,Trigger定义了何时启动Job。在Java...
### Java任务调度框架Quartz教程实例 #### 一、Quartz框架简介 Quartz是一个功能齐全、开源的任务调度服务框架,它可以被集成到几乎所有类型的Java应用程序中,无论是小型的独立应用还是大型的企业级系统,甚至是...
Quartz作为一个功能强大的任务调度框架,为Java开发者提供了极大的便利。它不仅可以轻松处理各种定时任务,还能通过扩展和定制满足复杂的企业级需求。通过学习和掌握Quartz,开发者可以更高效地管理系统的定时任务,...
总结来说,Quartz是Java中强大的定时任务库,通过它我们可以方便地创建和管理复杂的任务调度,包括但不限于在特定时间点执行任务、按固定间隔重复执行、甚至在满足特定条件时触发任务。相比`java.util.Timer`,...
Java任务调度框架Quartz2.0.2是一个强大的开源任务调度库,被广泛应用于各种Java应用程序中,包括Web应用和企业级系统。Quartz允许开发者安排任务以在特定时间执行,提供灵活的时间触发器和可插拔的Job执行策略。在...
Java任务调度工具是Java开发中一个非常重要的组件,主要用于自动化执行特定的任务,如数据同步、报表生成、系统维护等。当项目中的定时任务数量增加,手动管理这些任务变得复杂且容易出错时,引入任务调度工具显得尤...
在 Java 领域中,Quartz 是一个非常流行的任务调度框架,而 Spring 是一个非常流行的 Java 框架。在本文中,我们将详细介绍如何将 Spring 整合任务调度框架 Quartz,从而实现任务调度的自动化。 一、使用配置文件...
Java实现任务调度的过程中,涉及到的关键技术和工具包括Quartz调度器和Spring框架。Quartz是一个功能强大的开源作业调度系统,它可以用来整合到Java应用程序中,以实现作业调度的功能。Spring框架是一个广泛使用的...
Quartz 提供了一套丰富的 API 和支持,可以方便地与 Spring 框架集成,实现灵活的定时任务调度。 在 Spring 中集成 Quartz,首先需要创建一个 Java 类作为定时任务的执行体,例如 `MyJob` 类。这个类通常包含一个...
Quartz是一个开源的任务调度框架,专为Java应用程序设计,用于创建、管理和执行计划任务。在企业应用中,任务调度是非常常见且重要的需求,例如定期清理系统垃圾文件、定时导入导出数据、定时发送邮件等。Quartz通过...
Java任务调度框架Quartz是Java开发中用于自动化任务执行的重要工具,特别适用于企业级应用和服务。Quartz 1.8.6是该框架的一个稳定版本,提供了强大的定时任务管理和执行能力。下面我们将深入探讨Quartz的基本概念、...
Quartz是Java领域中一个广泛使用的开源任务调度框架,它提供了丰富的功能来满足各种定时任务的需求。本篇文章将深入探讨Quartz的基本实现,以及如何在Java项目中运用它。 首先,Quartz的核心概念包括作业(Job)、...
总之,Quartz提供了一套强大的任务调度机制,通过灵活的Job和Trigger配置,我们可以创建各种定时任务。同时,它的暂停、删除功能使得我们能够在运行时动态控制任务的执行状态,以适应不同的业务需求。在实际开发中,...
【任务调度 Quartz】是Java平台上广泛使用的开源任务调度框架,它允许开发者定义和执行周期性的任务。Quartz的核心功能在于其强大的作业(Job)和触发器(Trigger)系统,能够帮助我们在应用程序中灵活地安排任务...
Java定时任务和作业调度在软件...总的来说,理解并掌握Java的定时任务和作业调度,无论是Quartz还是Timer,都是提升开发效率和系统自动化能力的重要技能。通过实践和不断探索,可以更好地利用这些工具为项目带来便利。
Spring中的任务调度是实现应用程序自动化运行任务的重要工具,而Quartz是Java领域广泛使用的开源任务调度框架。在本文中,我们将深入探讨如何在Spring中集成Quartz进行任务调度,并通过一个简单的示例来理解其工作...
Quartz是一款广泛应用于Java环境中的开源任务调度框架,它提供了高度可配置的作业调度系统,使得开发者能够轻松地在应用程序中实现定时任务的管理。Quartz的核心特性包括但不限于以下几点: 1. **灵活的调度**:...