Spring boot initialDelay在运行时获取的值

Spring boot initialDelay在运行时获取的值,spring-boot,scheduler,Spring Boot,Scheduler,我的任务计划在1分钟后开始,然后每15秒它将在完成任务执行后再次运行。因此,我的调度程序如下所示:- @Scheduled(initialDelay=60000, fixedDelay=15000) public void runTask(){ // some code } 现在我需要在运行时使用initialDelay,这意味着如果JVM启动,那么我有一个方法“initialDelayCalculate”,它计算调度程序将调用多少小时、几分钟或几秒钟后的时间 时间计算方法如下:-

我的任务计划在1分钟后开始,然后每15秒它将在完成任务执行后再次运行。因此,我的调度程序如下所示:-

@Scheduled(initialDelay=60000, fixedDelay=15000)
public void runTask(){
     // some code
 }
现在我需要在运行时使用initialDelay,这意味着如果JVM启动,那么我有一个方法“initialDelayCalculate”,它计算调度程序将调用多少小时、几分钟或几秒钟后的时间

时间计算方法如下:-

public long initialDelayCalculate(){
 // time calculation 
}
因此,从我的计算方法中取initialDelay值是任何一种解决方案,如:-

@Scheduled(initialDelay={initialDelayCalculate()}, fixedDelay=15000)
public void runTask(){
     // some code
 }

我需要一小段代码来解决我的问题。我不想采用任何新的实现方式。因此,请任何人解释一下,对于任何解决方案,我如何在运行时利用initialDelay的值?

我通过调用方法名获得了我的解决方案,如下所示:-

@Scheduled(initialDelayString="#{initialDelayCalculate}", fixedDelay=15000)
public void runTask(){
     // some code
 }
对于initialDelayCalculate方法,我创建为bean,以便在JVM启动时首先调用它。比如:-

@Bean
public long initialDelayCalculate(){
 // time calculation 
}
现在它可以按照我的要求工作了。:)