java - Spring 启动: Getting @Scheduled cron value from database

标签 java spring-boot cron scheduled-tasks

我正在使用 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/

相关文章:

java - 使用 Jersey 对 Google Translate 进行 POST 调用会返回 HTTP 404

java - 过滤器还是什么? -- 进入Spring应用程序之前检查文件

java - Apache Camel 完成文件名

java - Spring Reactive 测试用例启动 Netty 服务器失败

java - 如何将 messages.properties 键发送到 Controller 中引发的异常?

python - 如何循环运行一系列python脚本?

Java:使用递归检查数组是否有序

java - 如何在 Spring Boot 中将 application.properties 文件外部化为例如外部依赖 JAR?

python - crontab 不会运行 os.system python 命令

python - 如果服务未运行,请重新启动 Raspberry Pi