处理 -server 参数,建议在-start启动时添加
This commit is contained in:
parent
fd62b9dd59
commit
8ce4bad94b
|
@ -22,7 +22,7 @@ namespace ClientTest
|
|||
[Fact]
|
||||
public void Normal()
|
||||
{
|
||||
var set = Stardust.Setting.Current;
|
||||
var set = Stardust.StarSetting.Current;
|
||||
var secret = Rand.NextString(8, true);
|
||||
set.Secret = secret;
|
||||
|
||||
|
|
|
@ -25,18 +25,7 @@ namespace StarAgent
|
|||
{
|
||||
if ("-upgrade".EqualIgnoreCase(args)) Thread.Sleep(5_000);
|
||||
|
||||
new MyService().Main(args);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>服务类。名字可以自定义</summary>
|
||||
internal class MyService : ServiceBase
|
||||
{
|
||||
public MyService()
|
||||
{
|
||||
ServiceName = "StarAgent";
|
||||
|
||||
var set = Stardust.Setting.Current;
|
||||
var set = StarSetting.Current;
|
||||
if (set.IsNew)
|
||||
{
|
||||
#if DEBUG
|
||||
|
@ -46,15 +35,7 @@ namespace StarAgent
|
|||
set.Save();
|
||||
}
|
||||
|
||||
// 注册菜单,在控制台菜单中按 t 可以执行Test函数,主要用于临时处理数据
|
||||
AddMenu('s', "使用星尘", UseStarServer);
|
||||
AddMenu('t', "服务器信息", ShowMachineInfo);
|
||||
AddMenu('w', "测试微服务", UseMicroService);
|
||||
|
||||
MachineInfo.RegisterAsync();
|
||||
|
||||
// 处理 -server 参数
|
||||
var args = Environment.GetCommandLineArgs();
|
||||
// 处理 -server 参数,建议在-start启动时添加
|
||||
if (args != null && args.Length > 0)
|
||||
{
|
||||
for (var i = 0; i < args.Length; i++)
|
||||
|
@ -66,11 +47,37 @@ namespace StarAgent
|
|||
set.Server = addr;
|
||||
set.Save();
|
||||
|
||||
WriteLog("服务端修改为:{0}", addr);
|
||||
XTrace.WriteLine("服务端修改为:{0}", addr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
new MyService
|
||||
{
|
||||
StarSetting = set,
|
||||
AgentSetting = Setting.Current
|
||||
}.Main(args);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>服务类。名字可以自定义</summary>
|
||||
internal class MyService : ServiceBase
|
||||
{
|
||||
public StarSetting StarSetting { get; set; }
|
||||
|
||||
public StarAgent.Setting AgentSetting { get; set; }
|
||||
|
||||
public MyService()
|
||||
{
|
||||
ServiceName = "StarAgent";
|
||||
|
||||
// 注册菜单,在控制台菜单中按 t 可以执行Test函数,主要用于临时处理数据
|
||||
AddMenu('s', "使用星尘", UseStarServer);
|
||||
AddMenu('t', "服务器信息", ShowMachineInfo);
|
||||
AddMenu('w', "测试微服务", UseMicroService);
|
||||
|
||||
MachineInfo.RegisterAsync();
|
||||
|
||||
// 定时重启
|
||||
var set2 = NewLife.Agent.Setting.Current;
|
||||
if (set2.AutoRestart == 0)
|
||||
|
@ -90,12 +97,12 @@ namespace StarAgent
|
|||
|
||||
public void StartClient()
|
||||
{
|
||||
var server = Stardust.Setting.Current.Server;
|
||||
var server = StarSetting.Server;
|
||||
if (server.IsNullOrEmpty()) return;
|
||||
|
||||
WriteLog("初始化服务端地址:{0}", server);
|
||||
|
||||
var set = Setting.Current;
|
||||
var set = AgentSetting;
|
||||
var client = new StarClient(server)
|
||||
{
|
||||
Code = set.Code,
|
||||
|
@ -135,7 +142,7 @@ namespace StarAgent
|
|||
{
|
||||
if (_factory == null)
|
||||
{
|
||||
var server = Stardust.Setting.Current.Server;
|
||||
var server = StarSetting.Server;
|
||||
if (!server.IsNullOrEmpty()) _factory = new StarFactory(server, "StarAgent", null);
|
||||
}
|
||||
}
|
||||
|
@ -157,7 +164,7 @@ namespace StarAgent
|
|||
/// </remarks>
|
||||
protected override void StartWork(String reason)
|
||||
{
|
||||
var set = Setting.Current;
|
||||
var set = AgentSetting;
|
||||
|
||||
// 应用服务管理
|
||||
_Manager = new ServiceManager
|
||||
|
@ -182,6 +189,7 @@ namespace StarAgent
|
|||
Service = this,
|
||||
Host = Host,
|
||||
Manager = _Manager,
|
||||
Setting = StarSetting,
|
||||
Log = XTrace.Log
|
||||
}, null);
|
||||
|
||||
|
@ -232,7 +240,7 @@ namespace StarAgent
|
|||
protected override void DoCheck(Object data)
|
||||
{
|
||||
// 支持动态更新
|
||||
_Manager.Services = Setting.Current.Services;
|
||||
_Manager.Services = AgentSetting.Services;
|
||||
|
||||
base.DoCheck(data);
|
||||
}
|
||||
|
@ -269,8 +277,7 @@ namespace StarAgent
|
|||
var client = _Client;
|
||||
|
||||
// 运行过程中可能改变配置文件的通道
|
||||
var set = Setting.Current;
|
||||
var channel = set.Channel;
|
||||
var channel = AgentSetting.Channel;
|
||||
var ug = new Upgrade { Log = XTrace.Log };
|
||||
|
||||
// 去除多余入口文件
|
||||
|
@ -320,15 +327,14 @@ namespace StarAgent
|
|||
{
|
||||
base.ShowMenu();
|
||||
|
||||
var set = Stardust.Setting.Current;
|
||||
var set = StarSetting;
|
||||
if (!set.Server.IsNullOrEmpty()) Console.WriteLine("服务端:{0}", set.Server);
|
||||
Console.WriteLine();
|
||||
}
|
||||
|
||||
public void UseStarServer()
|
||||
{
|
||||
var set = Stardust.Setting.Current;
|
||||
|
||||
var set = StarSetting;
|
||||
if (!set.Server.IsNullOrEmpty()) Console.WriteLine("服务端:{0}", set.Server);
|
||||
|
||||
Console.WriteLine("请输入新的服务端:");
|
||||
|
|
|
@ -26,6 +26,9 @@ namespace StarAgent
|
|||
|
||||
/// <summary>本地应用服务管理</summary>
|
||||
public ServiceManager Manager { get; set; }
|
||||
|
||||
/// <summary>星尘设置</summary>
|
||||
public StarSetting Setting { get; set; }
|
||||
#endregion
|
||||
|
||||
#region 业务
|
||||
|
@ -41,7 +44,7 @@ namespace StarAgent
|
|||
var fileName = p.MainModule.FileName;
|
||||
var args = Environment.CommandLine.TrimStart(Path.ChangeExtension(fileName, ".dll")).Trim();
|
||||
|
||||
var set = Stardust.Setting.Current;
|
||||
var set = Setting;
|
||||
// 使用对方送过来的星尘服务端地址
|
||||
if (set.Server.IsNullOrEmpty() && !info.Server.IsNullOrEmpty())
|
||||
{
|
||||
|
|
|
@ -37,7 +37,7 @@ namespace StarAgent
|
|||
var fileName = p.MainModule.FileName;
|
||||
var args = Environment.CommandLine.TrimStart(Path.ChangeExtension(fileName, ".dll")).Trim();
|
||||
|
||||
var set = Stardust.Setting.Current;
|
||||
var set = StarSetting.Current;
|
||||
// 使用对方送过来的星尘服务端地址
|
||||
if (set.Server.IsNullOrEmpty() && !info.Server.IsNullOrEmpty())
|
||||
{
|
||||
|
|
|
@ -71,7 +71,7 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||
{
|
||||
try
|
||||
{
|
||||
if (address.IsNullOrEmpty()) address = Stardust.Setting.Current.ServiceAddress;
|
||||
if (address.IsNullOrEmpty()) address = Stardust.StarSetting.Current.ServiceAddress;
|
||||
if (address.IsNullOrEmpty())
|
||||
{
|
||||
var feature = app.ServerFeatures.Get<IServerAddressesFeature>();
|
||||
|
|
|
@ -94,8 +94,6 @@ namespace Stardust.Server
|
|||
var tracer = app.ApplicationServices.GetRequiredService<ITracer>();
|
||||
using var span = tracer?.NewSpan(nameof(Configure));
|
||||
|
||||
var set = Stardust.Setting.Current;
|
||||
|
||||
// 调整应用表名
|
||||
FixAppTableName();
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace Stardust
|
|||
/// <summary>本地服务端地址</summary>
|
||||
public String Server { get => _local?.Server; set => _local.Server = value; }
|
||||
|
||||
private AgentInfo _local;
|
||||
private readonly AgentInfo _local;
|
||||
private ApiClient _client;
|
||||
#endregion
|
||||
|
||||
|
@ -41,7 +41,7 @@ namespace Stardust
|
|||
var fileName = p.MainModule.FileName;
|
||||
var args = Environment.CommandLine.TrimStart(Path.ChangeExtension(fileName, ".dll")).Trim();
|
||||
|
||||
var set = Stardust.Setting.Current;
|
||||
var set = StarSetting.Current;
|
||||
|
||||
_local = new AgentInfo
|
||||
{
|
||||
|
@ -66,7 +66,7 @@ namespace Stardust
|
|||
Log = XTrace.Log,
|
||||
};
|
||||
|
||||
var set = Setting.Current;
|
||||
var set = StarSetting.Current;
|
||||
if (set.Debug) _client.EncoderLog = XTrace.Log;
|
||||
}
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ namespace Stardust.Monitors
|
|||
/// <summary>实例化</summary>
|
||||
public StarTracer()
|
||||
{
|
||||
var set = Setting.Current;
|
||||
var set = StarSetting.Current;
|
||||
AppId = set.AppKey;
|
||||
//Secret = set.Secret;
|
||||
Period = set.TracerPeriod;
|
||||
|
@ -83,7 +83,7 @@ namespace Stardust.Monitors
|
|||
};
|
||||
Client = http;
|
||||
|
||||
var set = Setting.Current;
|
||||
var set = StarSetting.Current;
|
||||
if (!AppId.IsNullOrEmpty() && !set.Secret.IsNullOrEmpty())
|
||||
http.Filter = new TokenHttpFilter { UserName = AppId, Password = set.Secret };
|
||||
}
|
||||
|
@ -149,7 +149,7 @@ namespace Stardust.Monitors
|
|||
// 保存到配置文件
|
||||
if (rs.Period > 0 || rs.MaxSamples > 0 | rs.MaxErrors > 0)
|
||||
{
|
||||
var set = Setting.Current;
|
||||
var set = StarSetting.Current;
|
||||
set.TracerPeriod = Period;
|
||||
set.MaxSamples = MaxSamples;
|
||||
set.MaxErrors = MaxErrors;
|
||||
|
@ -206,7 +206,7 @@ namespace Stardust.Monitors
|
|||
/// <summary>全局注入</summary>
|
||||
public void AttachGlobal()
|
||||
{
|
||||
DefaultTracer.Instance = this;
|
||||
Instance = this;
|
||||
ApiHelper.Tracer = this;
|
||||
|
||||
#if NET5_0_OR_GREATER
|
||||
|
@ -246,7 +246,7 @@ namespace Stardust.Monitors
|
|||
{
|
||||
if (server.IsNullOrEmpty())
|
||||
{
|
||||
var set = Setting.Current;
|
||||
var set = StarSetting.Current;
|
||||
server = set.Server;
|
||||
}
|
||||
if (server.IsNullOrEmpty())
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace Stardust
|
|||
/// <summary>实例化</summary>
|
||||
public ServiceManager()
|
||||
{
|
||||
var data = NewLife.Setting.Current.DataPath;
|
||||
var data = Setting.Current.DataPath;
|
||||
_services = new CsvDb<ProcessInfo>((x, y) => x.Name == y.Name) { FileName = data.CombinePath("Service.csv") };
|
||||
|
||||
_services.Remove(e => e.UpdateTime.AddDays(1) < DateTime.Now);
|
||||
|
|
|
@ -94,7 +94,7 @@ namespace Stardust
|
|||
|
||||
_client = new ApiHttpClient(Server) { Filter = _tokenFilter };
|
||||
|
||||
var set = Setting.Current;
|
||||
var set = StarSetting.Current;
|
||||
if (set.Debug) _client.Log = XTrace.Log;
|
||||
}
|
||||
|
||||
|
@ -144,7 +144,7 @@ namespace Stardust
|
|||
}
|
||||
|
||||
// 如果探测不到本地应用,则使用配置
|
||||
var set = Setting.Current;
|
||||
var set = StarSetting.Current;
|
||||
if (Server.IsNullOrEmpty()) Server = set.Server;
|
||||
if (AppId.IsNullOrEmpty()) AppId = set.AppKey;
|
||||
if (Secret.IsNullOrEmpty()) Secret = set.Secret;
|
||||
|
|
|
@ -1,14 +1,12 @@
|
|||
using System;
|
||||
using System.ComponentModel;
|
||||
using NewLife;
|
||||
using NewLife.Common;
|
||||
using NewLife.Configuration;
|
||||
|
||||
namespace Stardust
|
||||
{
|
||||
/// <summary>星尘客户端配置</summary>
|
||||
[Config("Star")]
|
||||
public class Setting : Config<Setting>
|
||||
public class StarSetting : Config<StarSetting>
|
||||
{
|
||||
#region 属性
|
||||
/// <summary>调试开关。默认true</summary>
|
||||
|
@ -43,15 +41,5 @@ namespace Stardust
|
|||
[Description("最大异常采样数。采样周期内,最多只记录指定数量的异常事件,默认10")]
|
||||
public Int32 MaxErrors { get; set; } = 10;
|
||||
#endregion
|
||||
|
||||
#region 方法
|
||||
///// <summary>加载时</summary>
|
||||
//protected override void OnLoaded()
|
||||
//{
|
||||
// if (AppKey.IsNullOrEmpty()) AppKey = SysConfig.Current.Name;
|
||||
|
||||
// base.OnLoaded();
|
||||
//}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue