2016-07-29 102 views
-1

我在我的應用程序中有一個駱駝路線,它用cron表達式觸發。我正在使用camel quartz2調度程序,但我不確定如何將quartz2集羣化,因爲我們需要在多個節點上部署此應用程序。 以下是啓動駱駝路線的觸發器。如何使apache camel 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. 
+0

您能否詳細說明一下 - 聚集環境?期望是什麼? – Jayaraj

回答

0

這可通過將org.quartz.jobStore.isClustered設置爲true來實現。下面是從the official documentation報價:

通過設置「org.quartz.jobStore.isClustered」屬性設置爲「真」啓用集羣。集羣中的每個實例都應該使用quartz.properties文件的相同副本。例外情況是使用相同的屬性文件,並帶有以下可允許的異常:不同的線程池大小以及「org.quartz.scheduler.instanceId」屬性的不同值。集羣中的每個節點必須具有唯一的instanceId,通過將「AUTO」作爲該屬性的值,可以輕鬆完成(不需要不同的屬性文件)。

要配置這與駱駝,你將不得不把quartz.properties文件在src/main/resources/org/quartz。或者,您可以自定義Quartz組件並提供一個自定義屬性文件或Properties的實例。看看the official Camel documentation

+0

謝謝米洛斯,我明白了。 – VishalS

+0

我還有一個問題。是否有可能我可以使調度程序羣集而不使用數據庫表 – VishalS

+0

不幸的是,不是我所知道的 - 沒有數據庫,您的實例將無法正確同步。 –

0

看來你是誤解「未啓動」的消息。石英實際上是在你的情況下開始的。請等到時間滿足您的cron表達式以啓動作業/應用程序。 要查看石英的測井設置,請參閱Visit here.

+0

感謝Jayaraj,我知道它已啓動,但它並未以羣集模式啓動。我想以集羣模式啓動它。我知道我可以使用屬性文件來做到這一點,但我無法配置屬性文件。 – VishalS