Shedlock:使用属性文件中的 lockAtMostForString

我有这样的代码:


private static final String FOURTEEN_MIN = "PT14M";

...


@Scheduled(cron = "0 */15 * * * *")

@SchedulerLock(name = "scheduledTaskName", lockAtMostForString = FOURTEEN_MIN, lockAtLeastForString = FOURTEEN_MIN)

public void scheduledTask() {

   // do something

}

现在我使用常量,lockAtMostForString但我想从属性中获取这个值。

有办法吗?


附言

我知道我不能使用注释并像这样重写它:


LockingTaskExecutor executor = new DefaultLockingTaskExecutor(lockProvider);


...


Instant lockAtMostUntil = Instant.now().plusSeconds(600);

executor.executeWithLock(runnable, new LockConfiguration("lockName", lockAtMostUntil));

但我更喜欢使用注释。


一只萌萌小番薯
浏览 553回答 1
1回答

慕桂英4014372

您可以使用 spring 中的注入语法将您的属性直接注入注解中${propertyName:defaultValue}。注意1:当没有声明a时defaultValue,如果属性缺失,那么spring会抛出错误。注意 2:几乎所有 spring-annotation 都可以使用此语法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python