2.63. quartz


使用 Quartz 2.x 调度程序调度消息发送。

2.63.1. 内部是什么

  • quartz 组件, URI 语法: quartz:groupName/triggerName

有关使用和配置详情,请参阅上述链接。

2.63.2. Maven 协调

在 code.quarkus.redhat.com 上使用此扩展创建一个新项目

或者将协调添加到现有项目中:

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-quartz</artifactId>
</dependency>

2.63.3. 使用方法

2.63.3.1. 集群

对 Quartz 集群的支持由 Quarkus Quartz 扩展提供。以下步骤概述了如何配置 Quarkus Quartz 以用于 Camel。

  1. 启用 Quartz 集群模式,并将 DataSource 配置为持久性 Quartz 作业存储。示例配置如下:

    # Quartz configuration
    quarkus.quartz.clustered=true
    quarkus.quartz.store-type=jdbc-cmt
    quarkus.quartz.start-mode=forced
    
    # Datasource configuration
    quarkus.datasource.db-kind=postgresql
    quarkus.datasource.username=quarkus_test
    quarkus.datasource.password=quarkus_test
    quarkus.datasource.jdbc.url=jdbc:postgresql://localhost/quarkus_test
    
    # Optional automatic creation of Quartz tables
    quarkus.flyway.connect-retries=10
    quarkus.flyway.table=flyway_quarkus_history
    quarkus.flyway.migrate-at-start=true
    quarkus.flyway.baseline-on-migrate=true
    quarkus.flyway.baseline-version=1.0
    quarkus.flyway.baseline-description=Quartz
  2. 向应用添加正确的 JDBC 驱动程序扩展,使其与 quarkus.datasource.db-kind 的值对应。在上例中使用了 postgresql,因此需要以下 JDBC 依赖项:根据您的需要进行调整。DataSource 支持还需要 agroal。

    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-jdbc-postgresql</artifactId>
    </dependency>
    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-agroal</artifactId>
    </dependency>
  3. Quarkus Flyway 可以自动为您创建必要的 Quartz 数据库表。将 quarkus-flyway 添加到应用程序(可选)。

    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-flyway</artifactId>
    </dependency>

    另外,为您选择的数据库类型添加 Quartz 数据库创建脚本。Quartz 项目提供可从 这里 复制的脚本。将 SQL 脚本添加到 src/main/resources/db/migration/V1.0.0__QuarkusQuartz.sql。Quarkus Flyway 将在启动时检测它,并将继续创建 Quartz 数据库表。

  4. 将 Camel Quartz 组件配置为使用 Quarkus Quartz 调度程序。

    @Produces
    @Singleton
    @Named("quartz")
    public QuartzComponent quartzComponent(Scheduler scheduler) {
        QuartzComponent component = new QuartzComponent();
        component.setScheduler(scheduler);
        return component;
    }

进一步自定义 Quartz 调度程序,可以通过各种配置属性来完成。如需更多信息,请参阅 Quarkus Quartz 配置指南

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.