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

Quartz任务调度快速入门9

阅读更多

下面我们来观察一下不同时期qrtz_simple_triggers表的数据:

1.运行代码清单2的SimpleTriggerRunner一小段时间后退出:

Quartz任务调度快速入门

REPEAT_COUNT表示需要运行的总次数,而TIMES_TRIGGER表示已经运行的次数。

2.运行代码清单7的JDBCJobStoreRunner恢复trigger1_1的触发器,运行一段时间后退出,这时qrtz_simple_triggers中的数据如下:

Quartz任务调度快速入门

首先Quartz会将原REPEAT_COUNT-TIMES_TRIGGER得到新的REPEAT_COUNT值,并记录已经运行的次数(重新从0开始计算)。

3.重新启动JDBCJobStoreRunner运行后,数据又将发生相应的变化:

Quartz任务调度快速入门

4.继续运行直至完成所有剩余的次数,再次查询qrtz_simple_triggers表:

Quartz任务调度快速入门

这时,该表中的记录已经变空。

值得注意的是,如果你使用JDBC保存任务调度数据时,当你运行代码清单2的SimpleTriggerRunner然后退出,当再次希望运行SimpleTriggerRunner时,系统将抛出JobDetail重名的异常:

Unable to store Job with name: 'job1_1' and group: 'jGroup1', because one already exists with this identification.

因为每次调用Scheduler#scheduleJob()时,Quartz都会将JobDetail和Trigger的信息保存到数据库中,如果数据表中已经同名的JobDetail或Trigger,异常就产生了。

本文使用quartz 1.6版本,我们发现当后台数据库使用MySql时,数据保存不成功,该错误是Quartz的一个Bug,相信会在高版本中得到修复。因为HSQLDB不支持SELECT * FROM TABLE_NAME FOR UPDATE的语法,所以不能使用HSQLDB数据库。

小结

Quartz提供了最为丰富的任务调度功能,不但可以制定周期性运行的任务调度方案,还可以让你按照日历相关的方式进行任务调度。Quartz框架的重要组件包括Job、JobDetail、Trigger、Scheduler以及辅助性的JobDataMap和SchedulerContext。

Quartz拥有一个线程池,通过线程池为任务提供执行线程,你可以通过配置文件对线程池进行参数定制。Quartz的另一个重要功能是可将任务调度信息持久化到数据库中,以便系统重启时能够恢复已经安排的任务。此外,Quartz还拥有完善的事件体系,允许你注册各种事件的监听器。

分享到:
评论

相关推荐

    Quartz任务调度快速入门

    ### Quartz任务调度快速入门知识点详解 #### 一、Quartz框架简介 Quartz是一个功能强大的开源作业调度框架,被广泛应用于Java应用中实现任务的定时调度。Quartz通过对任务调度领域的核心问题进行高度抽象,提炼出...

    Quartz框架快速入门

    ### Quartz框架快速入门详解 #### 一、Quartz框架简介 Quartz是一个开源的作业调度框架,用于开发Java应用程序。它提供了强大的触发器(Trigger)机制用于关联作业(Job),同时还具备灵活的表达式用于配置定时...

    Quartz 任务调度器

    Quartz 是一个开源的任务调度框架,它允许程序员在 Java 应用程序中安排复杂的作业执行。Quartz 提供了丰富的 API 和配置选项,使得开发者能够灵活地定义作业和触发器,实现定时任务的自动化管理。 Quartz 的核心...

    任务调度Quartz框 架

    【Quartz任务调度框架】 Quartz是一个开源的任务调度框架,非常适合初学者入门。它为Java开发者提供了一种高效且可控的方式来实现定时任务的调度。在各种企业应用中,任务调度的需求非常常见,例如定期清理系统垃圾...

    任务调度框架Quartz

    Quartz 任务调度框架 Quartz 是一个功能强大且灵活的任务调度框架,广泛应用于各种企业应用中,例如定时清理系统垃圾文件、定时导入导出数据、定时发送邮件等等业务场景。Quartz 提供了高度可控的任务调度功能,...

    Quartz调度任务学习(快速开发入门)(转)

    Quartz调度任务学习(快速开发入门),帮助你快速掌握Quartz的开发,使用性较强

    quartz1.5.0 任务调度demo

    这个"quartz1.5.0 任务调度demo"应该包含了以上步骤的示例代码,可以帮助你快速理解并实践Quartz的使用。在实际开发中,你可以根据项目需求,利用Quartz的灵活性和强大功能,构建复杂且可靠的定时任务系统。

    任务调度Quartz框架

    【Quartz任务调度框架】 Quartz是一个开源的任务调度框架,专为Java应用程序设计,用于创建、管理和执行计划任务。在企业应用中,任务调度是非常常见且重要的需求,例如定期清理系统垃圾文件、定时导入导出数据、...

    Quartz业务调度入门实例15个_注释带中文翻译

    这个项目包含15个入门实例,旨在帮助开发者快速理解并掌握Quartz在实际业务中的应用。Quartz 2.1.7是这些示例所使用的版本,它是一个稳定且功能丰富的版本。 一、Quartz基本概念 1. 作业(Jobs):Quartz中的核心元素...

    Quartz_框架快速入门

    本文将引导您快速入门 Quartz 框架,了解其基本使用方法。 首先,要开始使用 Quartz,您需要从官方网站下载对应的 JAR 包,通常为 quartz-<version>.jar。除此之外,根据您的需求,Quartz 可能还需要一些第三方库,...

    quartz实例,quartz入门例子

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

    web环境下Quartz作业调度入门源代码(Jboss)

    本示例“web环境下Quartz作业调度入门源代码(Jboss)”提供了一个基础的Quartz在Web应用中的实现,下面我们将详细探讨相关的知识点。 1. **Quartz简介** - Quartz是一个轻量级的作业调度框架,支持Cron表达式和复杂...

    Quartz框架快速入门.pdf

    Quartz框架是一款强大的开源任务调度库,广泛应用于Java环境下的定时任务管理。要开始使用Quartz,首先需要在项目中引入必要的依赖。基础依赖是quartz-<version>.jar,这是Quartz的核心库。除此之外,根据你的需求,...

    Quartz定时器从入门到进阶

    Quartz支持多种特性,如数据库集成、集群、插件系统、EJB作业、cron-like表达式等,这使得它成为一个功能丰富的任务调度解决方案。 在Quartz中,任务被称为“作业”(Job),每个作业都需要实现`org.quartz.Job`...

    Quartz 框架快速入门

    本篇文章将带你快速入门Quartz框架,了解如何在Spring中集成Quartz以及创建和执行Job。 首先,要使用Quartz框架,你需要在项目中引入必要的库文件。主要依赖的JAR是quartz-<version>.jar,此外,由于Quartz可能需要...

    quartz scheduler 入门教程

    Quartz Scheduler 是一种功能丰富、开源的任务调度程序库,可以在任何 Java 程序中使用。它可以用来创建简单或者复杂的执行次数可以达成千上万的任务。任务可以是任何 Java 可以做的事情。 什么是 Quartz Scheduler...

    quartznet任务调度和消息调度

    - 从提供的文件"QuartzBeginnerExample"来看,可能包含了一个简单的Quartz.NET入门示例,帮助开发者快速理解如何创建、调度和运行任务。 - "作业调度.docx"可能包含了更详细的关于任务调度的理论知识和实践指南,...

    quartz案例,包括spring配置设置调度器和入门手册

    通过以上内容,你可以开始使用Quartz进行任务调度,并结合Spring实现更灵活的管理。继续深入学习Quartz的高级特性,如集群支持、作业监听器和触发器监听器,将有助于构建更加健壮和可扩展的定时任务系统。

Global site tag (gtag.js) - Google Analytics