50.12. 使用 QuartzScheduledPollConsumerScheduler


Quartz 组件提供了一个轮询 Consumer 调度程序,它允许使用基于 cron 的调度来轮询消费者,如 File 和 FTP 用户。

例如,要使用基于 cron 的表达式每第 2 秒轮询一次文件,可将 Camel 路由定义为:

    from("file:inbox?scheduler=quartz&scheduler.cron=0/2+*+*+*+*+?")
       .to("bean:process");

请注意,我们定义了 scheduler=quartz,以指示 Camel 使用基于 Quartz 的调度程序。然后,我们使用 scheduler.xxx 选项来配置调度程序。Quartz 调度程序需要设置 cron 选项。

支持以下选项:

参数默认值类型描述

quartzScheduler

null

org.quartz.Scheduler

使用自定义 Quartz 调度程序。如果没有配置,则使用组件的共享调度程序。

cron

null

字符串

必需 :定义用于触发轮询的 cron 表达式。

triggerId

null

字符串

指定触发器 ID。如果没有提供,则生成并使用 UUID。

triggerGroup

QuartzScheduledPollConsumerScheduler

字符串

指定触发器组。

timeZone

默认值

TimeZone

用于 CRON 触发器的时区。

重要

请记住,从端点 URI 配置这些选项必须以 调度程序 作为前缀。

例如,配置触发器 id 和组:

    from("file:inbox?scheduler=quartz&scheduler.cron=0/2+*+*+*+*+?&scheduler.triggerId=myId&scheduler.triggerGroup=myGroup")
       .to("bean:process");

Spring 中还有一个 CRON 调度程序,因此您也可以使用以下内容:

    from("file:inbox?scheduler=spring&scheduler.cron=0/2+*+*+*+*+?")
       .to("bean:process");
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.