1003
技术社区[云栖]
.NET Core???????????????????????????[8]: ???????????????????????????????????????-??????-????????????-?????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????.NET Core??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????JSON????????????????????????JsonConfigurationSource???????????????????????????????????????Microsoft.Extensions.Configuration.Json?????????NuGet??????????????????????????????project.json????????????????????????????????????????????????NuGet???????????????[ ????????????????????????ASP.NET Core?????????????????????]
1: {
2: ...
3: "dependencies": {
4: ...
5: "Microsoft.Extensions.Configuration.Json": "1.0.0"
6: }
7: }
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????JSON?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????MinThreads ???MaxThreads????????????????????????????????????????????????????????????????????????ThreadPoolOptions????????????Options?????????
1: public class ThreadPoolOptions
2: {
3: public int MinThreads { get; set; }
4: public int MaxThreads { get; set; }
5:??
6: public override string ToString()
7: {
8: return $"Thread pool size: [{MinThreads}, {MaxThreads}]";
9: }
10: }
????????????????????????????????????threadPool.json??????????????????????????????????????????????????????????????????????????????project.json????????????????????????????????????????????????????????????????????????????????????????????????bin????????????????????????????????????????????????????????????????????????????????????????????????builtOptions/copyToOutput????????????????????????????????????
1: {
2: ...
3: "buildOptions": {
4: ...
5: "copyToOutput": "threadPool.json"
6: }
7: }
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ConfigurationBuilder???????????????????????????????????????JsonConfigurationSource??????????????????JsonConfigurationSource????????????????????????????????????????????????threadPool.json?????????????????????????????????????????????????????????True????????????????????????ReloadOnChange?????????????????????????????????????????????????????????????????????????????????????????????????????????
1: IConfiguration config = new ConfigurationBuilder()
2: .Add(new JsonConfigurationSource {Path = "threadPool.json", ReloadOnChange = true })
3: .Build();
4:??
5: Action changeCallBack = () => {
6: ThreadPoolOptions options = new ServiceCollection()
7: .AddOptions()
8: .Configure<ThreadPoolOptions>(config)
9: .BuildServiceProvider()
10: .GetService<IOptions<ThreadPoolOptions>>()
11: .Value;
12: Console.WriteLine(options);
13: };
14:??
15: ChangeToken.OnChange(()=>config.GetReloadToken(), changeCallBack);
16:??
17: Random random = new Random();
18: while (true)
19: {
20: ThreadPoolOptions options = new ThreadPoolOptions
21: {
22: MinThreads = random.Next(10, 20),
23: MaxThreads = random.Next(40, 50)
24: };
25: File.WriteAllText(Path.Combine(AppContext.BaseDirectory, "threadPool.json"), JsonConvert.SerializeObject(options));
26: Task.Delay(5000).Wait();
27: }
?????????ConfigurationBuilder??????Configuration?????????????????????????????????GetReloadToken??????????????????ChangeToken??????????????????????????????????????????????????????????????????????????????ChangeToken?????????????????????OnChange?????????ChangeToken???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Options?????????????????????????????????ThreadPoolOptions?????????????????????????????????????????????????????????
????????????????????????????????????????????????????????????5??????????????????threadPool.json?????????????????????????????????????????????????????????????????????????????????threadPool.json?????????????????????????????????Configuration??????????????????????????????Configuration???????????????????????????????????????GetReloadToken????????????ChangeToken?????????HasChanged???????????????True?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????S04???
??????????????????????????????A
?????????www.weibo.com/artech
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
最后更新:2017-10-25 11:05:58
上一篇:
.NET Core采用的全新配置系统[7]: 将配置保存在数据库中
下一篇:
.NET Core采用的全新配置系统[9]: 为什么针对XML的支持不够好?如何改进?
hibernate一对多连接懒加载EAGER只能有一个,如果有多个报错,需要手动强制录入
什么是顶级域名、地理域名、个性域名
深度解析Java8 – AbstractQueuedSynchronizer的实现分析(上)
sql server 游标
PhalApi-RabbitMQ基于PhalApi专业队列拓展
家用医疗仪器的市场发展分析
给2014年的自己开的书单
《Spring攻略(第2版)》——1.12 用@Autowired和@Resource自动装配Bean
SPI FLASH与NOR FLASH的区别?
java 响应式 企业网站 源码 SSM 生成静态化 手机 平板 PC