Spring Boot中@Scheduled的动态配置

时间:2018-12-23 11:18:09

标签: java spring-boot yaml spring-scheduled

我正在尝试使用配置文件动态配置Spring Boot调度。

目标是在我的application.yml中包含以下内容:

platform:
  plata:
    schedule:
      cron: '0 0 9 * * *'
  platb:
    schedule:
      initialDelay = 20000
      fixedDelay = 10000000

我正在努力的工作是如何将这种配置应用于@Scheduled注释。我在想以下内容:

Scheduler.java:

@Scheduled("${platform.plata.schedule}")
public void plata() throws CalculationException {
    ...
}

@Scheduled("${platform.platb.schedule}")
public void platb() throws CalculationException {
    ...
}

1 个答案:

答案 0 :(得分:0)

在配置中使用属性的完整路径。

玉米表达应为0 0 9 * * *,请注意不要'字符

@Scheduled(cron="${platform.plata.schedule.cron}")
public void withCron() {
    // 
}

@Scheduled(initialDelayString = "${platform.platb.schedule.initialDelay}" ,fixedDelayString= "${platform.platb.schedule.fixedDelay}")
public void withFixedDelay() {
    // 
}