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。
启用 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
向应用添加正确的 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>
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 数据库表。将 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 配置指南。