2017-05-04 111 views
0

我在Spring引導中使用Apache駱駝作爲中間層實現我的代碼,同時設置駱駝路由我使用quartz2組件爲此我想使用外部石英。屬性文件來覆蓋默認的quartz.properties文件。有人可以幫我解決這個問題。 我試圖使用CommandLineRunner來實現,但我得到的異常如下 org.springframework.beans.factory.BeanCreationException:創建名爲'schedulerApplication'的bean時出錯:注入自動裝配依賴失敗;嵌套異常是java.lang.IllegalArgumentException:無法解析值「$ {org.quartz.scheduler.instanceName}」中的佔位符'org.quartz.scheduler.instanceName'「外部配置Spring引導和quartz.properties在Apache駱駝

回答

0

如果我明白你的意思,你一定是想要以外化你自己的石英特性,並嘗試在駱駝石英2組件中使用它。 創建quartz.properties您的自定義條目類似下面

quartz.uri=quartz://group/quartzScheduler?cron=0+05+21+?+*+* 

下面是一個例子航線

public void configure() throws Exception { 
     super.configure(); 
     String externalService= PropertyParser.getInstance().getStringProperty(Key.Service); 
     from(quartzEndpoint("sampleQuartz")) 
       .to(externalService) 
       .process(new Processor() { 
        public void process(Exchange e) throws Exception { 
         log.info("Before storing " + MessageHelper.extractBodyAsString(e.getIn())); 
         MyHelper.writeCLOBPut(e); 
         log.info("After storing " + MessageHelper.extractBodyAsString(e.getIn())); 
        } 
       }).log("Stored in DB"); 
    } 

希望這有助於

+0

謝謝巴拉吉你的迴應還是我不清楚像什麼在你的代碼中是「sampleQuartz」,因爲它應該是端點right.I在我的代碼中使用quartz2組件。 –

+0

而不是寫這樣的cron表達式,我寫了一個配置方法「quartzEndpoint」,它接受一個名稱並從數據庫中獲取cron表達式。以簡單的方式,你可以這樣寫 - from(「quartz2:// myGroup/myTimerName?cron = 0 + 0/5 + 12-18 +?+ * + MON-FRI」) –