@@ spring boot中的计划将不会在我们提供的日期上运行

问题描述 投票:-3回答:1
@Scheduled(cron="*/5 * * * * ?")
public void startQuery(){
    try{
      //some code
    }catch(Exception e){

    }
}
  1. 如何将动态列表发送到@Schedule。
  2. [@Scheduled将在我们提供的特定日期运行。
  3. Spring Boot中的[@Scheduled不会在我们提供的日期上运行。

在cron表达式中,我想发送列表以及要排除的日期。

java spring spring-boot spring-mvc spring-data
1个回答
0
投票

在@Scheduled批注中,您不能使用动态值,但这不是问题,因为您可以使用另一种方法来处理此代码示例:

ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
scheduler.initialize();
loadCrons()

private void loadCrons() {
  String cron = <read your cron from somewhere>
  scheduler.schedule(new Runnable() {
     @Override
     public void run() {
        // do your stuff here
     }
  }, new CronTrigger(cron);
}

如果更改了您的任务清单,并且您想重新加载它们,则必须执行:

scheduler.shutdown();
scheduler.initialize();
loadCrons();

完成。

© www.soinside.com 2019 - 2024. All rights reserved.