根据配置文件禁用 @Scheduled 定时任务

105 阅读1分钟

本来是想通过 @ConditionalOnProperty 来实现这个功能的,但是发现不起作用。

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 表达式配置为 - 来禁用定时任务。

public class SampleTask {

    @Scheduled(cron = "${task.sample.disable.cron:-}")
    public void disableSample() {
        log.info("disable sample task");
    }
}

在配置文件中配置 cron 表达式:

task:
  sample:
    disable:
      cron: "-"

版权声明:本文为博主「佳佳」的原创文章,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:www.liujiajia.me/2021/7/19/d…