apolloconfig / apolloconfig/apollo.net

热更新失效的问题

Aperta
#166 11 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
C#
Stelle
494
Fork
167
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

求问一下本组件,
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 });
});
}
}

请问有没有办法处理呢,还是说必须重新自己绑定监听路径?

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.