You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.9 KiB
C#
62 lines
1.9 KiB
C#
using System;
|
|
using System.Threading;
|
|
using log4net;
|
|
using log4net.Config;
|
|
using CncCollector.Config;
|
|
using CncCollector.Core;
|
|
using CncCollector.Api;
|
|
|
|
namespace CncCollector
|
|
{
|
|
/// <summary>
|
|
/// 主入口:启动采集引擎与管理 API。
|
|
/// </summary>
|
|
internal class Program
|
|
{
|
|
private static readonly ILog Log = LogManager.GetLogger(typeof(Program));
|
|
|
|
static void Main(string[] args)
|
|
{
|
|
// 初始化日志
|
|
XmlConfigurator.Configure();
|
|
|
|
// 假设默认配置:从配置文件加载,若失败使用硬编码默认值
|
|
var defaultConfig = new CncModels.Entity.CollectorConfig
|
|
{
|
|
ApiPort = 9000,
|
|
ApiKey = "",
|
|
HeartbeatInterval = 60,
|
|
ConfigPollInterval = 30,
|
|
DailySummaryTime = TimeSpan.FromHours(1),
|
|
CollectRetryCount = 3,
|
|
CollectRetryIntervalSeconds = 5,
|
|
CollectFailAlertThreshold = 3
|
|
};
|
|
|
|
// 数据库连接字符串,实际部署应改为配置文件读取
|
|
string connectionString = "server=127.0.0.1;user=root;password=123456;database=cnc_business;SslMode=none";
|
|
|
|
// 从 DB 覆盖运行时配置
|
|
try
|
|
{
|
|
ConfigLoader.LoadRuntimeConfig(connectionString, defaultConfig);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Log.Error("加载运行时配置失败,使用默认配置", e);
|
|
}
|
|
|
|
var engine = new CollectorEngine(connectionString, defaultConfig);
|
|
engine.Start();
|
|
var api = new CollectorApiServer(engine, defaultConfig.ApiKey, defaultConfig.ApiPort);
|
|
api.Start();
|
|
|
|
Console.WriteLine("CNC 收集服务已启动,按任意键退出...");
|
|
Console.ReadKey();
|
|
|
|
api.Stop();
|
|
engine.Stop();
|
|
}
|
|
}
|
|
}
|