269.11. Using QuartzScheduledPollConsumerScheduler

Quartz2 组件提供了一个轮询消费者调度程序,它允许对 轮询消费者 (如文件和 FTP 用户)使用基于 cron 的调度。

例如,要使用基于 cron 的表达式每 2 秒钟轮询文件,则可以直接定义 Camel 路由,如下所示:

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

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

支持以下选项:

参数默认类型描述

quartzScheduler

null

org.quartz.Scheduler

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

cron

null

字符串

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

triggerId

null

字符串

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

triggerGroup

QuartzScheduledPollConsumerScheduler

字符串

指定触发器组。

timeZone

默认

TimeZone

用于 CRON 触发器的时区。

重要信息: 记住端点 URI 配置这些选项必须带有 调度程序前缀。例如,配置触发器 id 和组:

    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");