根据配置文件禁用 @Scheduled 定时任务
🏷️ Spring Boot
本来是想通过 @ConditionalOnProperty
来实现这个功能的,但是发现不起作用。
java
public class SampleTask {
@Scheduled(cron = "${task.sample.disable.cron:0 0/10 * * * ?}")
@ConditionalOnProperty(name = "task.sample.disable.enable", havingValue = "true", matchIfMissing = true)
public void disableSample() {
log.info("disable sample task");
}
}
根据 StackOverflow 上的回答,可以通过将 cron 表达式配置为 -
来禁用定时任务。
java
public class SampleTask {
@Scheduled(cron = "${task.sample.disable.cron:-}")
public void disableSample() {
log.info("disable sample task");
}
}
在配置文件中配置 cron 表达式:
yaml
task:
sample:
disable:
cron: "-"