我正在使用 Spring Boot
,并且在使用数据库中现有的值安排 cron 任务
时遇到问题。
目前,我正在从属性文件中读取值,如下所示:
@Scheduled(cron= "${time.export.cron}")
public void performJob() throws Exception {
// do something
}
这很好用,但我不想从属性文件中获取值,而是想从数据库表中获取它们。这可能吗?如何实现?
最佳答案
您可以在 SpringBootApplication 主类或任何配置类中添加一个 bean 以从数据库获取 cron 值。示例代码如下:
@Autowired
private CronRepository cronRepo;
@Bean
public int getCronValue()
{
return cronRepo.findOne("cron").getCronValue();
}
您应该创建一个表并在数据库中提供合适的值。之后,您可以在 @Scheduled
中提供 bean。示例代码如下:
@Scheduled(cron="#{@getCronValue}")
希望它能解决您的问题。
关于java - Spring 启动: Getting @Scheduled cron value from database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62023656/