我想在java中運行一個cron,它將每天運行x個小時。 X將由數據庫中的一個非靜態值決定。我想是這樣的:cron中的表達式
private static String cronRunTime = getCronRunTimeFromDb();
private String cronExpression = "* " + cronRunTime + " * * *";
但我面臨的主要問題是,我沒有得到我怎麼可以配置在@Scheduled註釋此值。
我試過的東西:
@Scheduled(cron = cronExpression)
public void myCron(){
}
但是在編譯過程中,我得到一個錯誤:
error: element value must be a constant expression
@Scheduled(cron = cronExpression)
能有人幫我解決這個問題。
你對問題「爲什麼我得到一個編譯器錯誤?」或者更多關於「如何根據數據庫中的信息配置cron表達式計劃任務?」 –
我的問題是「如何根據數據庫中的信息配置cron表達式計劃任務」 –
我在下面的答案中提供了2個選項:使用Java代碼和以編程方式配置任務(使用Spring),以及使用'@ Scheduled'註釋的聲明方式和Spring的佔位符功能。您也可以刪除Spring方法,並簡單地使用純JDK功能來運行計劃任務:'ExecutorService'等。 –