Quartz scheduler java2025 年 5 月 3 日 | 阅读 5 分钟 ![]() 调度器在构建 Java 应用程序中起着重要作用。QuartzJobScheduling 是一个开源的作业调度库。它拥有丰富的功能,几乎可以集成到我们的 Java 应用程序中。我们可以将其与独立应用程序或大型电子商务系统集成。 Quartz 用于创建具有数万个作业的复杂调度。Quartz 调度器支持多种企业级功能,包括集群和 JTA 事务。 如果我们的 Java 应用程序有一些需要在特定时间发生的任务,或者我们的系统有周期性的维护作业,Quartz 可能是我们理想的解决方案。以下是 Quartz 调度器在 Java 中的用途:
Quartz 调度器功能Quartz 调度器具有以下功能,使其非常适合集成到 Java 应用程序中: ![]() 1) 运行时环境 我们可以将 Quartz 嵌入到另一个独立的应用程序中运行,并可以在应用程序服务器中实例化。它也可以作为独立的程序集群来运行以执行作业。Quartz 还可以参与 XA 事务。作为独立应用程序,Quartz 可以通过 RMI 来运行。 2) 作业调度 作业调度是 Quartz 的另一项功能。我们可以使用 Quartz 来调度作业。我们安排作业在指定的触发器触发时运行。作业仅添加一次到调度器,但它们会与多个触发器注册。 3) 作业执行 实现 Job 接口的任何 Java 类都被称为 Job 类。这些类通过创建该 Job 类的实例来执行。该类的实例可以由我们的应用程序框架或 Quartz 实例化。当触发器触发时,调度器会通知实现 TriggerListener 和 JobListener 接口的 Java 对象,并在作业执行后,也会通知这些监听器。 Job 返回 JobCompletionCode 以通知调度器作业的成功或失败。 4) 作业持久化 Quartz 作业是持久化的,因为 Quartz 库有一个 JobStore 接口,这对于存储作业非常有用。它提供了一系列将它们存储在数据库中的机制。配置为“非易失性”的作业和触发器使用 JDBCJobStore 存储在关系数据库中。Quartz 库提供 RAMJobStore 接口,该接口将所有触发器和作业存储在 RAM 中。 5) 事务 借助 JobStoreCMT,Quartz 可以参与 JTA 事务。它管理 JTA 事务,使 Job 执行的工作自动发生在 JTA 事务中。 6) 集群
让我们通过一个例子来了解如何使用 Quartz 实现调度器应用程序。在我们的例子中,我们触发一个作业,该作业每次都会调用一个业务相关的任务。程序启动 Quartz 调度器,并安排作业每分钟运行一次。 为了创建 Quartz 调度器程序,我们需要在 POM.xml 文件中添加以下依赖项。 CreateQuartzJob.java 现在,为了调度作业,我们需要创建一个调度器应用程序或 Quartz 调度器应用程序。调度作业以每次运行任务需要五个步骤。这些步骤如下:
让我们按照上面讨论的步骤来实现代码,以了解 Quartz 调度器是如何工作的。 QuartzScheduler.java 当我们运行 QuartzScheduler.java 类时,我们将看到如下输出: ![]() CreateQuartzJob 在不同的线程中每 60 秒重复运行一次。QuartzScheduler 调度 Job 并给出相应的结果。 |
? 在 Java 编程中,创建类层次结构并通过继承扩展现有类是基本概念。然而,并非所有类都可以被继承。Java 有工具来限制某些类的继承,其中之一就是 final 关键字。在本节中,我们将探讨这个概念...
阅读 3 分钟
Future 是 Java 语言中的一个接口,属于 java.util.concurrent
包。它作为异步计算结果的符号。该接口提供了确定计算是否完成、等待其完成以及...
阅读 4 分钟
一个令初学者困惑的特定异常是。在本教程中,我们将熟悉 ClassNotFound 异常及其修复方法。ClassNotFound Exception 这个名字本身就暗示了当类未找到时 ClassNotFound 异常发生。ClassNotFound 异常被抛出...
阅读 4 分钟
在 Java 中,Character.isSurrogate() 函数用于确定指定的字符是否为代理字符。UTF-16 编码中的代理对表示超出基本多语言平面 (BMP) 的字符。这些对由高代理和低代理组成。如果...,则一个字符被视为代理码单元。
5 分钟阅读
死代码是开发人员在编程过程中经常遇到的一个常见问题。它指的是编写但从未在程序运行时执行的代码行或代码块。虽然这似乎无害,但死代码会使代码库混乱,使其更难...
阅读 3 分钟
Java vs Kotlin Java 和 Kotlin 都是面向对象的编程语言。但它们用于不同的目的。Kotlin 用于开发 Android 应用程序,而 Java 主要用于开发企业应用程序。它们都用于开发各种应用程序,尽管它们...
5 分钟阅读
Java 的 extends 关键字允许类继承超类的属性和行为。它在两个类(子类和超类)之间建立了继承关系。子类继承其超类的所有非私有特征和过程,超类既是父类也是基类。语法:class Subclass extends Superclass...
5 分钟阅读
为了编写更灵活、可重用且类型安全的代码,开发人员需要使用 Java 编程语言的泛型功能。泛型最初在 Java 5 中可用,此后已成为任何 Java 开发人员工具箱中的关键组成部分。在本节中,我们……
阅读 4 分钟
HashSet 与 LinkedHashSet HashSet 是 Java 集合框架中的一个类,用于创建使用哈希表存储对象的集合。相比之下,LinkedHashSet 类与 HashSet 类似。此外,它还维护插入顺序。HashSet 继承了……
5 分钟阅读
在 Java 8 中,anyMatch() 是在 Stream 接口中定义的一个方法。它执行一个短路终端操作。在本节中,我们将通过一个示例讨论 Java 8 Stream 中的 anyMatch() 方法。在进入正题之前,我们将首先理解中间和...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India