Я хочу войти в систему при изменении конфигурации.
Я делаю это в Program.cs
или Startup.cs
:
ChangeToken.OnChange(
() => configuration.GetReloadToken(),
state => logger.Information("Configuration reloaded"),
(object)null
);
Но я получаю двойные отчеты об изменениях, поэтому их нужно обсудить. Совет сделать это :
ChangeToken.OnChange(
() => configuration.GetReloadToken(),
state => { Thread.Sleep(2000); logger.Information("Configuration reloaded"); },
(object)null
);
Я использую 2000
здесь, поскольку я не уверен, что является разумным значением.
Я обнаружил, что иногда я все еще получаю несколько обнаружений изменений, разделенных 2000 миллисекундами. Таким образом, отмена не работает для меня, просто вызывает задержку между зарегистрированными изменениями. Если я установлю высокое значение, то получу только один отчет, но он не идеален (и скрывает проблему).
Итак, я хотел бы знать:
- Действительно ли это мешает или просто ставит в очередь зарегистрированные изменения?
- Я использовал значения от 1000 до 5000 с переменным успехом. Что другие используют?
- Выдается ли сон основному потоку сервера? Я надеюсь, что нет!