2015-01-08 38 views
0

我有一個使用Quartz 2.2.1和JDBC作業存儲的核心Java應用程序。所有的工作安排在同一時間。從不同的基於Web的應用程序管理石英作業

我正在使用Appfuse,maven和Quartz構建另一個基於Spring的應用程序。 我想從spring應用程序中重新計劃在前一個應用程序中運行的作業。 雖然這樣做我得到類沒有發現異常,因爲我沒有在類路徑中添加作業類。如果我添加它們,我可以更新作業。

是否有任何方法來管理Spring應用程序中的作業,而無需在類路徑中添加作業類。

我不想使用jdbc或hibernate更新quartz數據庫。

回答

0

是的,這是Quartz Remote API的一個已知限制。如果您必須遠程與多個Quartz調度程序版本進行通信或進行管理,那將非常痛苦。當管理應用程序在內部使用Quartz API時(這似乎是您的情況)變得更加痛苦。

如果你看看我創建的QuartzDesk項目,你會發現它通過公開一個JAX-WS SOAP接口非常優雅地解決了這個問題,通過它你可以與之通信和管理外部的Quartz調度器實例。它隱藏了所有Quartz調度器API的複雜性以及簡單的類Quartz API背後的Quartz差異。

JAX-WS接口描述爲here並且還有相關的WSDL文件可供下載。

+0

謝謝您的回覆。 但是,你能否建議我用其他方法來解決這個問題。 –

+0

您可能想要嘗試JMX API。這不一定需要在應用程序的類路徑中存在Qartz API,但是,您需要解決兩個問題。 (1)當涉及觸發器操作時,JMX API非常有限,例如你不能用它來獲得特定於觸發器的屬性(例如cron表達式或CronTrigger等)。 (2)您需要在您的應用程序中實現自定義JMX數據轉換器。作爲一個起點,您可以克隆Quartz轉換器(請參閱org.quartz.core.jmx)並修改它們以使用您的數據模型。這是相當多的工作... –

相關問題