规范并补充日志内容
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
namespace SHH.CameraSdk
|
||||
using Ayay.SerilogLogs;
|
||||
using Serilog;
|
||||
|
||||
namespace SHH.CameraSdk
|
||||
{
|
||||
#region --- 架构基类:帧处理集群 (Frame Processor Cluster) ---
|
||||
|
||||
@@ -15,6 +18,9 @@
|
||||
where TWorker : BaseWorker
|
||||
{
|
||||
#region --- 受保护成员 ---
|
||||
|
||||
private static ILogger _sysLog = Log.ForContext("SourceContext", LogModules.Core);
|
||||
|
||||
/// <summary> Worker 线程池,负责具体的帧处理任务 </summary>
|
||||
protected readonly List<TWorker> _workers = new List<TWorker>();
|
||||
|
||||
@@ -39,7 +45,10 @@
|
||||
{
|
||||
// 校验并行度参数,避免无效配置
|
||||
if (workerCount < 1)
|
||||
throw new ArgumentOutOfRangeException(nameof(workerCount), "Worker数量必须大于0");
|
||||
{
|
||||
_sysLog.Error("[Core] 帧处理集群初始化失败, 线程数必须 > 0.");
|
||||
throw new ArgumentOutOfRangeException(nameof(workerCount), "帧处理集群初始化失败, 线程数必须 > 0.");
|
||||
}
|
||||
|
||||
_configManager = configManager; // 先赋值配置管理器
|
||||
_workerCount = workerCount;
|
||||
@@ -50,7 +59,7 @@
|
||||
_workers.Add(CreateWorker(i));
|
||||
}
|
||||
|
||||
Console.WriteLine($"[{serviceName}] 服务已初始化 (并行度: {workerCount})");
|
||||
_sysLog.Information($"[Core] 帧处理集群初始化成功, {serviceName} 并行数 {workerCount}. 注: 不能大于CPU核心数.");
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -156,6 +165,8 @@
|
||||
{
|
||||
#region --- 私有成员 ---
|
||||
|
||||
private static ILogger _gRpcLog = Log.ForContext("SourceContext", LogModules.gRpc);
|
||||
|
||||
/// <summary> 线程内任务队列,容量限制100,防止内存溢出 </summary>
|
||||
private readonly BlockingCollection<(long DeviceId, SmartFrame Frame, FrameDecision Decision)> _taskQueue = new BlockingCollection<(long, SmartFrame, FrameDecision)>(100);
|
||||
|
||||
@@ -195,7 +206,7 @@
|
||||
{
|
||||
// 背压处理:丢弃当前帧,释放引用计数
|
||||
frame.Dispose();
|
||||
Console.WriteLine($"[Worker] 任务队列已满,丢弃设备 {deviceId} 的帧 (引用计数已释放)");
|
||||
_gRpcLog.Debug($"[gRpc] 任务队列已满,BaseWorker 丢弃设备 {deviceId} 的帧.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -228,7 +239,7 @@
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"[Worker] 帧处理异常: {ex.Message}");
|
||||
_gRpcLog.Information($"[gRpc] 帧处理异常,BaseWorker 异常消息: {ex.Message}.");
|
||||
|
||||
// 异常保底策略:即使处理失败,也透传帧到下一个环节,保证流水线不中断
|
||||
NotifyFinished(taskItem.DeviceId, frame, taskItem.Decision);
|
||||
@@ -239,11 +250,11 @@
|
||||
catch (OperationCanceledException)
|
||||
{
|
||||
// 正常取消:线程退出,无需报错
|
||||
Console.WriteLine("[Worker] 处理循环已正常终止");
|
||||
_gRpcLog.Information($"[gRpc] BaseWorker 处理循环已正常终止.");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"[Worker] 处理循环异常终止: {ex.Message}");
|
||||
_gRpcLog.Error($"[gRpc] BaseWorker 处理循环异常终止.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user