【问题标题】:Can you change and manually reload property using archaius?您可以使用 archaius 更改和手动重新加载属性吗?
【发布时间】:2017-12-03 07:04:33
【问题描述】:
我有两个关于archaius的问题:
1) 我可以使用 archaius 更改本地属性文件中的一个属性的值吗?
- 我想我必须在没有archaius的情况下手动完成。
2) 当我在我的属性文件中手动更改我的属性值时,我可以强制 archaius 立即重新加载属性吗?
我的代码正在编辑属性文件,然后将属性值作为用户响应提供,但 archaius 不会立即使用 DynamicPreperty 刷新它的值。
提前致谢
【问题讨论】:
标签:
java
netflix-archaius
【解决方案1】:
您可以在使用 ConfigurationManager.install 安装 DynamicConfiguration 后重新加载配置。在这种情况下,您可以使用 stop 和 start 重新加载。
public void refresh() {
List<AbstractConfiguration> configurations = finalConfig.getConfigurations();
for (AbstractConfiguration configuration : configurations) {
if (configuration instanceof DynamicConfiguration) {
DynamicConfiguration dynamicConfiguration = DynamicConfiguration.class.cast(configuration);
PolledConfigurationSource source = dynamicConfiguration.getSource();
dynamicConfiguration.stopLoading();
dynamicConfiguration.startPolling(source, new FixedDelayPollingScheduler(0, TEN_MINUTES, true));
}
}
}