合并XAgent
智能大石头 authored at 2023-03-08 20:59:57
3.81 KiB
X_NET20
using System.ComponentModel;
using NewLife.Xml;

namespace XAgent;

/// <summary>服务设置</summary>
[DisplayName("服务设置")]
[XmlConfigFile(@"Config\XAgent.config", 15000)]
public class Setting : XmlConfig<Setting>
{
    #region 属性
    /// <summary>是否启用全局调试。默认为不启用</summary>
    [Description("全局调试")]
    public Boolean Debug { get; set; }

    /// <summary>服务名</summary>
    [Description("服务名")]
    public String ServiceName { get; set; }

    /// <summary>显示名</summary>
    [Description("显示名")]
    public String DisplayName { get; set; }

    /// <summary>服务描述</summary>
    [Description("服务描述")]
    public String Description { get; set; }

    /// <summary>工作线程间隔,单位:秒。不同工作线程的时间间隔用逗号或分号隔开。可以通过设置任务的时间间隔小于0来关闭指定任务</summary>
    [Description("工作线程间隔,单位:秒。不同工作线程的时间间隔用逗号或分号隔开。可以通过设置任务的时间间隔小于0来关闭指定任务")]
    public String Intervals { get; set; } = "3";

    /// <summary>最大活动时间,单位:秒。超过最大活动时间都还没有响应的线程将会被重启,防止线程执行时间过长。默认0秒,表示无限</summary>
    [Description("最大活动时间,单位:秒。超过最大活动时间都还没有响应的线程将会被重启,防止线程执行时间过长。默认0秒,表示无限")]
    public Int32 MaxActive { get; set; }

    /// <summary>最大占用内存,单位: M。超过最大占用时,整个服务进程将会重启,以释放资源。默认0秒,表示无限</summary>
    [Description("最大占用内存,单位: M。超过最大占用时,整个服务进程将会重启,以释放资源。默认0秒,表示无限")]
    public Int32 MaxMemory { get; set; }

    /// <summary>最大总线程数,单位:个。超过最大占用时,整个服务进程将会重启,以释放资源。默认0个,表示无限</summary>
    [Description("最大总线程数,单位:个。超过最大占用时,整个服务进程将会重启,以释放资源。默认0个,表示无限")]
    public Int32 MaxThread { get; set; }

    /// <summary>自动重启时间,单位:分。到达自动重启时间时,整个服务进程将会重启,以释放资源。默认0分,表示无限</summary>
    [Description("自动重启时间,单位:分。到达自动重启时间时,整个服务进程将会重启,以释放资源。默认0分,表示无限")]
    public Int32 AutoRestart { get; set; }

    /// <summary>看门狗,保护其它服务,每分钟检查一次。多个服务名逗号分隔</summary>
    [Description("看门狗,保护其它服务,每分钟检查一次。多个服务名逗号分隔")]
    public String WatchDog { get; set; }
    #endregion

    #region 方法
    ///// <summary>新建时调用</summary>
    //protected override void OnNew()
    //{
    //    Debug = Config.GetConfig<Boolean>("XAgent.Debug", false);
    //    ServiceName = Config.GetConfig<String>("XAgent.ServiceName");
    //    DisplayName = Config.GetConfig<String>("XAgent.DisplayName");
    //    Description = Config.GetConfig<String>("XAgent.Description");
    //    Intervals = Config.GetConfig<String>("XAgent.Interval", Config.GetConfig<String>("Interval", "60"));
    //    MaxActive = Config.GetConfig<Int32>("XAgent.MaxActive");
    //    MaxMemory = Config.GetConfig<Int32>("XAgent.MaxMemory");
    //    MaxThread = Config.GetConfig<Int32>("XAgent.MaxThread");
    //    AutoRestart = Config.GetConfig<Int32>("XAgent.AutoRestart");
    //    WatchDog = Config.GetConfig<String>("XAgent.WatchDog");
    //}
    #endregion
}