Spring Boot @Scheduled cron
有没有办法在Spring的@Scheduled
cron
配置中从propertyClass调用getter(甚至是变量)? 以下不编译:
@Scheduled(cron = propertyClass.getCronProperty())
或@Scheduled(cron = variable)
我想避免直接抓住财产:
@Scheduled(cron = "${cron.scheduling}")
简短的回答 - 这是不可能的。
在@Scheduled
注释中作为“cron表达式”传递的值在ScheduledAnnotationBeanPostProcessor
类中使用StringValueResolver
接口的实例进行处理。
StringValueResolver
有3个开箱即用的实现 - 用于Placeholder
(例如$ {}),用于Embedded
值和用于Static
字符串 - 其中没有一个可以实现您要查找的内容。
如果您必须不惜一切代价在注释中使用属性占位符,请删除注释并以编程方式构造所有内容。 您可以使用ScheduledTaskRegistrar
注册任务,这是@Scheduled
注释实际执行的操作。
我会建议使用最简单的解决方案,并通过测试。
@Component
public class MyReminder {
@Autowired
private SomeService someService;
@Scheduled(cron = "${my.cron.expression}")
public void excecute(){
someService.someMethod();
}
}
在/src/main/resources/application.properties中
my.cron.expression = 0 30 9 * * ?
链接地址: http://www.djcxy.com/p/33007.html
上一篇: Spring Boot @Scheduled cron
下一篇: Youtube Data API v3 PlaylistItems update not working for Watch Later playlists