如何使apache camel quartz2调度程序聚集

时间:2016-07-29 07:28:34

标签: cron apache-camel quartz-scheduler

我的应用程序中有一个camel路由,它由cron表达式触发。我正在使用camel quartz2调度程序,但我不知道如何使quartz2聚集,因为我们需要在多个节点上部署此应用程序。 以下是启动骆驼路线的触发器。

from("quartz2://foo?cron=1+1+1+*+*+?&trigger.timeZone=Australia/Melbourne")

任何人都可以帮我在群集环境中配置它。

执行此路线时,我得到了以下信息:

Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
   NOT STARTED.
  Currently in standby mode.
  Number of jobs executed: 0
  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
  Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support     persistence. and is not clustered.

2 个答案:

答案 0 :(得分:0)

您似乎被误解为“未开始”的消息。石英实际上是在你的情况下启动的。请等到时间满足您的cron表达式才能启动作业/应用程序。 要查看quartz的日志记录设置Visit here.

答案 1 :(得分:0)

这可以通过将org.quartz.jobStore.isClustered设置为true来实现。这是the official documentation的引用:

  

通过将“org.quartz.jobStore.isClustered”属性设置为“true”来启用群集。集群中的每个实例都应使用quartz.properties文件的相同副本。例外情况是使用相同的属性文件,具有以下允许的例外:不同的线程池大小,以及“org.quartz.scheduler.instanceId”属性的不同值。集群中的每个节点必须具有唯一的instanceId,通过将“AUTO”作为此属性的值放置,可以轻松完成(不需要不同的属性文件)。

要使用Camel进行配置,您必须将quartz.properties文件放在src/main/resources/org/quartz中。或者,您可以自定义Quartz组件并提供自定义属性文件或Properties的实例。看看the official Camel documentation