270.11. 使用 QuartzScheduledPollConsumerScheduler
Quartz2 组件提供了一个 Polling Consumer 调度程序,它允许将基于 cron 的调度用于 Polling Consumer,如 File 和 FTP 用户。
例如,要使用基于 cron 的表达式每第 2 秒轮询一次文件,可将 Camel 路由定义为:
from("file:inbox?scheduler=quartz2&scheduler.cron=0/2+*+*+*+*+?") .to("bean:process");
请注意,我们定义 scheduler=quartz2
,以指示 Camel 使用基于 Quartz2 的调度程序。然后,我们使用 scheduler.xxx
选项来配置调度程序。Quartz2 调度程序需要设置 cron 选项。
支持以下选项:
参数 | 默认值 | 类型 | 描述 |
---|---|---|---|
|
|
| 使用自定义 Quartz 调度程序。如果没有配置,则使用 Quartz2 组件的共享调度程序。 |
|
|
| 强制 :定义用于触发轮询的 cron 表达式。 |
|
|
| 指定触发器 ID:如果没有提供,则生成并使用 UUID。 |
|
|
| 指定触发器组。 |
|
|
| 用于 CRON 触发器的时区。 |
重要: 从端点 URI 配置这些选项必须以 调度程序前缀。
例如,配置触发器 id 和 group:
from("file:inbox?scheduler=quartz2&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");