或者,如果失敗,則從調度程序中刪除任務並添加一個新任務。在運行時更改Spring任務的計劃時間?
恐怕這是春天的一部分我對100多%或100%的無知,花了一個下午閱讀有關它的文章沒有闡明很多東西。
基本上,我有一個程序有三個計劃任務,一個每運行500毫秒,兩個基於cron表達式運行。我的客戶希望能夠即時更改這些cron表達式。
附近,我可以說這意味着我需要從應用程序上下文中取出cron表達式並將它們移動到數據庫。這部分很容易。最難的部分是弄清楚如何在Spring中獲得對已經存在的計劃任務的引用,並在下一次應該運行時進行更改。關於此主題的每篇文章都只描述瞭如何設置應用程序上下文或註釋。
我一直能找到的唯一答案是only work for regular intervals(根據評論,這可能實際上並不工作)。我希望不必寫一些解釋Cron表達式的東西,所以我正在考慮這個解決方案「B計劃」。
感謝您的幫助!
你在使用'@ Scheduled'方法嗎? –
現在正在使用的那些將在applicationContext.xml中進行調度,而不是使用註釋。我可以切換到註釋,但我仍然不知道如何在運行時更改週期。 –
對於動態任務,我不會使用這種機制。考慮使用'ExecutorService'並自己提交任務。或者更好的是,使用石英並通過它來管理任務。 [春天不讓你玩預定任務](http://stackoverflow.com/questions/21791853/how-are-spring-taskscheduled-objects-represented-at-runtime)。 –