gpt4 book ai didi

spring - 当 application.properties 中的值发生变化时,as spring 属性多久更新一次?

转载 作者:行者123 更新时间:2023-12-03 09:21:22 26 4
gpt4 key购买 nike

我会每小时在预定时间执行一项任务,并使用@Scheduled 执行以下操作。下面的代码每小时在整点后 5 分钟执行该任务。但是,如果我在应用程序启动后将属性更改为“0 10 * * * *”,它是否会读取该值并将任务计划更改为在整点后 10 分钟运行?

@Component
public class DataCleanupTask {
private static final Logger LOGGER = LoggerFactory.getLogger(DataCleanupTask.class);
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-DD HH:mm:ss a");

@Scheduled(cron = "${data.cleanup.task.schedule.cron}")
public void cleanupData() {
LOGGER.debug("Starting data cleanup at " + dateFormat.format(new Date()));
}
}

# application.properties
# Schedules a task to run 5 minutes after the hour, every hour
data.cleanup.task.schedule.cron=0 5 * * * *

最佳答案

在 Spring 应用程序中,属性在系统启动时被读取,并且所有对它们的引用都会被处理(通过 BeanFactoryPostProcessor);在应用程序启动后更改属性文件在应用程序重新启动之前不会产生任何影响。

为了在运行时重新配置系统,您需要公开从外部修改它们的方法,例如使用 JMX。

关于spring - 当 application.properties 中的值发生变化时,as spring 属性多久更新一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29826285/

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