-
-
Notifications
You must be signed in to change notification settings - Fork 168
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
热更新失效的问题 #166
Comments
Apollo不会监听c:\opt\data\ {ApolloID} \config-cache目录,只会在服务端发布配置后才会触发热更新 |
那 IOptionMonitor 的的Onchange 事件是监听的 c:\opt\data\ {ApolloID} \config-cache目录 的文件改动吗? |
不建议直接修改缓存文件,如果想要修改配置建议修改AppSettings.json |
在.NET5 当中照着文档做,IOption的 Onchange事件正常, |
我这边没有直接对缓存文件做操作,只监听了缓存文件的改动。 |
Apollo发布新配置才会更新,没必要监控 |
请问这个包已经从nuget下架了吗,在nuget 的UI 没有找到, PM> Install-Package Tuhu.Extensions.Configuration.ValueBinder.Json
已用时间: 00:00:00.7385950 已用时间: 00:00:00.7385950 |
包已经隐藏了,你可以直接编辑csproj添加。 |
那如果不靠那个包来绑定的,新的 绑定 option的步骤是? |
@zzq361267211 看看是不是这个问题: #203 |
求问一下本组件,
1.是添加了 ChangeToken 的 监听路径吗? c:\opt\data\ {ApolloID} \config-cache
请问这个路径是否可以自己进行配置,可以的化如何设置呢?
另外我的服务中用了别的框架-furion,发现热更新失效了,请问是否也是上文提到的 ChangeToken监听路径被改写后造成的影响呢,我排查以后发现按下文代码处理,可以使热更新重新生效
ChangeToken.OnChange(
() =>
{
var phyFileProvider = new PhysicalFileProvider(@"c:\opt\data\ApolloDemo\config-cache");//TODO:此处路径可配置化处理
IChangeToken changeToken = phyFileProvider.Watch(".");
return changeToken;
}
故推测是 @"c:\opt\data\ApolloDemo\config-cache"); 这个路径被其他框架覆盖,
查找其框架源码后有如下处理的代码
// 配置选项监听
if (typeof(IConfigurableOptionsListener).IsAssignableFrom(optionsType))
{
var onListenerMethod = optionsType.GetMethod(nameof(IConfigurableOptionsListener.OnListener));
if (onListenerMethod != null)
{
// 这里监听的是全局配置(总感觉不对头)
ChangeToken.OnChange(() => configurationRoot.GetReloadToken(), () =>
{
var options = optionsConfiguration.Get();
onListenerMethod.Invoke(options, new object[] { options, optionsConfiguration });
});
}
}
请问有没有办法处理呢,还是说必须重新自己绑定监听路径?
The text was updated successfully, but these errors were encountered: