Skip to content

Commit

Permalink
可以根据配置初始化监控节点
Browse files Browse the repository at this point in the history
  • Loading branch information
kklldog committed Nov 19, 2021
1 parent c83b570 commit ca05b93
Show file tree
Hide file tree
Showing 8 changed files with 83 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
<AssemblyVersion>1.5.3.1</AssemblyVersion>
<Version>1.5.2</Version>
<PackageVersion>1.5.3.1</PackageVersion>
<PackageVersion>1.5.3.2</PackageVersion>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
</PropertyGroup>

Expand Down
20 changes: 15 additions & 5 deletions AgileConfig.Server.Apisite/InitService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,34 @@
using System.Threading;
using System.Threading.Tasks;
using AgileConfig.Server.IService;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace AgileConfig.Server.Apisite
{
public class InitService: IHostedService
{
private IRemoteServerNodeProxy _remoteServerNodeProxy;
private IEventRegister _eventRegister;
public InitService(IRemoteServerNodeProxy proxy, IEventRegister eventRegister)
private readonly IRemoteServerNodeProxy _remoteServerNodeProxy;
private readonly IEventRegister _eventRegister;
private readonly ISettingService _settingService;
private readonly IServerNodeService _serverNodeService;
public InitService(IServiceScopeFactory serviceScopeFactory)
{
_remoteServerNodeProxy = proxy;
_eventRegister = eventRegister;
using (var scope = serviceScopeFactory.CreateScope())
{
_remoteServerNodeProxy = scope.ServiceProvider.GetService<IRemoteServerNodeProxy>();
_eventRegister = scope.ServiceProvider.GetService<IEventRegister>();
_settingService = scope.ServiceProvider.GetService<ISettingService>();
_serverNodeService = scope.ServiceProvider.GetService<IServerNodeService>();
}
}

public Task StartAsync(CancellationToken cancellationToken)
{
if (Appsettings.IsAdminConsoleMode)
{
_serverNodeService.InitWatchNodeAsync();
_settingService.InitDefaultEnvironment();
_remoteServerNodeProxy.TestEchoAsync();
_eventRegister.Init();
}
Expand Down
9 changes: 5 additions & 4 deletions AgileConfig.Server.Apisite/appsettings.Development.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
}
},
"adminConsole": true,
"nodes": "", // 需要监控的节点
"preview_mode": true,
"db": {
"provider": "sqlite", //sqlite,mysql,sqlserver,npgsql,oracle
Expand All @@ -28,9 +29,9 @@
},

"JwtSetting": {
"SecurityKey": "dfasf343453fsdfa,./,./sdfasf34r3hfhfdb", // 密钥
"Issuer": "agileconfig.admin", // 颁发者
"Audience": "agileconfig.admin", // 接收者
"ExpireSeconds": 86400 // 过期时间
"SecurityKey": "dfasf343453fsdfa,./,./sdfasf34r3hfhfdb", // ��Կ
"Issuer": "agileconfig.admin", // �䷢��
"Audience": "agileconfig.admin", // ������
"ExpireSeconds": 86400 // ����ʱ��
}
}
1 change: 1 addition & 0 deletions AgileConfig.Server.Apisite/appsettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
}
},
"adminConsole": false,
"nodes": "", // 需要监控的节点
"preview_mode": false,
"db": {
"provider": "", //sqlite,mysql,sqlserver,npgsql,oracle
Expand Down
6 changes: 6 additions & 0 deletions AgileConfig.Server.IService/IServerNodeService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,11 @@ public interface IServerNodeService: IDisposable
Task<bool> UpdateAsync(ServerNode node);

Task<List<ServerNode>> GetAllNodesAsync();

/// <summary>
/// 根据appsettings里的nodes配置初始化服务器节点
/// </summary>
/// <returns></returns>
Task<bool> InitWatchNodeAsync();
}
}
6 changes: 3 additions & 3 deletions AgileConfig.Server.Service/RemoteServerNodeProxy.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public string Serialize(object obj)
}
}

private IServerNodeService GetGerverNodeService()
private IServerNodeService GetServerNodeService()
{
return new ServerNodeService(new FreeSqlContext(FreeSQL.Instance));
}
Expand Down Expand Up @@ -222,7 +222,7 @@ public async Task<ClientInfos> GetClientsReportAsync(string address)

public async Task TestEchoAsync(string address)
{
using var service = GetGerverNodeService();
using var service = GetServerNodeService();
var node = await service.GetAsync(address);
try
{
Expand Down Expand Up @@ -251,7 +251,7 @@ public Task TestEchoAsync()
{
while (true)
{
using var service = GetGerverNodeService();
using var service = GetServerNodeService();
var nodes = await service.GetAllNodesAsync();
foreach (var node in nodes)
Expand Down
52 changes: 52 additions & 0 deletions AgileConfig.Server.Service/ServerNodeService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -76,5 +76,57 @@ public async Task<bool> UpdateAsync(ServerNode node)

return result;
}


public async Task<bool> InitWatchNodeAsync()
{
var count = await _dbContext.ServerNodes.Select.CountAsync();
if (count > 0)
{
return false;
}
var nodes = Global.Config["nodes"];
var addresses = new List<string>();
if (!string.IsNullOrEmpty(nodes))
{
var arr = nodes.Split(',');
foreach (var item in arr)
{
var address = "";
if (item.StartsWith("http", StringComparison.OrdinalIgnoreCase))
{
address = item;
}
else
{
address = "http://" + item;
}

addresses.Add(address);
}
}

foreach (var address in addresses)
{
var node = await _dbContext.ServerNodes.Where(n => n.Address == address).ToOneAsync();
if (node == null)
{
node = new ServerNode()
{
Address = address,
CreateTime = DateTime.Now,
};
await _dbContext.ServerNodes.AddAsync(node);
}
}

var result = 0;
if (addresses.Count > 0)
{
result = await _dbContext.SaveChangesAsync();
}

return result > 0;
}
}
}
1 change: 0 additions & 1 deletion AgileConfig.Server.Service/SettingService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,6 @@ public void Dispose()

public async Task<string[]> GetEnvironmentList()
{
await InitDefaultEnvironment();
var env = await _dbContext.Settings.Where(x => x.Id == DefaultEnvironmentKey).FirstAsync();

return env.Value.ToUpper().Split(',');
Expand Down

0 comments on commit ca05b93

Please sign in to comment.