2013-03-29 100 views
2

我正在開發預定的服務。石英不會從調度中刪除已刪除的作業

該應用程序使用JDK 1.6,Spring Framework 2.5.6和Quartz 1.8.4開發來安排作業。

我有兩臺WebLogic Server 10.3.5的集羣服務器。我注意到的行爲是,如果從應用程序中刪除(或重命名)一個作業,Quartz將不斷嘗試啓動舊作業(似乎已在Quartz用來同步其實例的數據庫中註冊)。

有人可以解釋這種行爲的原因嗎?

我的需求是,當我在應用程序中刪除作業並重新啓動WebLogic實例時,Quartz不會嘗試引導舊作業。

在此先感謝

+0

你是否正在從Quartz表中刪除作業? –

+0

我只從應用程序代碼中刪除了作業並重新構建了該軟件的發行版 –

回答

2

您需要從石英調度明確移除工作,你做了嗎? 例如,如果你有這樣的scedhuler

private org.quartz.Scheduler myScheduler = null; 

你需要調用:

myScheduler.deleteJob(... 

當作業刪除或重命名。

如果你這樣做,也許你傳遞不正確的密鑰?

或者,當你建立了石英的工作,你可以使用:jobBuilder.storeDurably(false) 這將導致你的石英作業被自動刪除當不再有積極與之相關聯的觸發器。

+0

使用deletejob可以正確刪除作業。 我目前正在做一個計劃任務重構的活動,有沒有石英的方法或配置,當他們不再存在時允許自動移除作業? –

+0

@ClaudioQuery:請參閱編輯 – axelrod

+2

感謝您的建議。我使用Spring Framework(org.springframework.scheduling.quartz)來啓動quartz,默認值「持久」是錯誤的。看來這個設置沒有效果。 –