gpt4 book ai didi

java - @ConditionalOnProperty 和 @Scheduled 不起作用

转载 作者:行者123 更新时间:2023-11-30 05:26:19 25 4
gpt4 key购买 nike

如果存在属性,我想触发特定的计划函数。

我的属性如下:

tasks:
task1:
interval: "* * * ? * *"
task2:
interval: "0 * * ? * *"

这些是我的功能:

@Scheduled(cron = "${tasks.task1.interval}")
public void doTask1()
{
// do something
}

@Scheduled(cron = "${tasks.task2.interval}")
public void doTask2()
{
// do something
}

我想要实现的是,如果未指定 task2 属性,则不会触发 doTask2()。

属性:

tasks:
task1:
interval: "* * * ? * *"

功能:

@ConditionalOnProperty(value = "tasks.task1")
@Scheduled(cron = "${tasks.task1.interval}")
public void doTask1()
{
// do something
}



@ConditionalOnProperty(value = "tasks.task2")
@Scheduled(cron = "${tasks.task2.interval}")
public void doTask2()
{
// do something
}

如果我尝试此设置,我总是会收到以下错误:

Could not resolve placeholder 'tasks.task2.interval' in value "${tasks.task2.interval}"

最佳答案

来自Spring documentation :

The special value "-" indicates a disabled cron trigger, primarily meant for externally specified values resolved by a ${...} placeholder.

您可以为 cron 表达式使用默认的负值:

@Scheduled(cron = "${tasks.task2.interval:-}")

有关默认值的更多信息可以找到 here .

关于java - @ConditionalOnProperty 和 @Scheduled 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58521677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com