1 feat: 重构数据加载完成事件的处理机制
2
3 - 从IDataLoaderService接口中移除OnLoadDataCompleted事件
4 - 在IEventService接口中新增OnLoadDataCompleted事件和RaiseLoadDataCompleted方法
5 - 在EventService实现类中实现数据加载完成事件的触发功能
6 - 修改DataLoaderService不再直接触发事件,而是通过IEventService来触发
7 - 更新MQTT、OPC UA和S7后台服务以订阅事件服务中的数据加载完成事件
8 - 修改数据加载完成事件的监听方式,统一使用事件服务进行管理
9
10 此重构改进了事件处理的架构设计,使事件管理更加集中和一致。
This commit is contained in:
@@ -44,8 +44,5 @@ public interface IDataLoaderService
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
Task LoadAllNlogsAsync(int count);
|
Task LoadAllNlogsAsync(int count);
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 当数据加载完成时触发
|
|
||||||
/// </summary>
|
|
||||||
event EventHandler<DataLoadCompletedEventArgs> OnLoadDataCompleted;
|
|
||||||
}
|
}
|
||||||
@@ -125,4 +125,16 @@ public interface IEventService
|
|||||||
/// 变量启停改变事件
|
/// 变量启停改变事件
|
||||||
/// </summary>
|
/// </summary>
|
||||||
event EventHandler<VariablesActiveChangedEventArgs> OnVariableActiveChanged;
|
event EventHandler<VariablesActiveChangedEventArgs> OnVariableActiveChanged;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 数据加载完成事件
|
||||||
|
/// </summary>
|
||||||
|
event EventHandler<DataLoadCompletedEventArgs> OnLoadDataCompleted;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 触发数据加载完成事件
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender">事件发送者</param>
|
||||||
|
/// <param name="e">数据加载完成事件参数</param>
|
||||||
|
void RaiseLoadDataCompleted(object sender, DataLoadCompletedEventArgs e);
|
||||||
}
|
}
|
||||||
@@ -28,11 +28,9 @@ public class DataLoaderService : IDataLoaderService
|
|||||||
private readonly IMqttAppService _mqttAppService;
|
private readonly IMqttAppService _mqttAppService;
|
||||||
private readonly INlogAppService _nlogAppService;
|
private readonly INlogAppService _nlogAppService;
|
||||||
private readonly ITriggerManagementService _triggerManagementService; // 添加触发器管理服务
|
private readonly ITriggerManagementService _triggerManagementService; // 添加触发器管理服务
|
||||||
|
private readonly IEventService _eventService; // 添加事件服务
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 当数据加载完成时触发
|
|
||||||
/// </summary>
|
|
||||||
public event EventHandler<DataLoadCompletedEventArgs> OnLoadDataCompleted;
|
|
||||||
|
|
||||||
public const int LoadLogCount =100;
|
public const int LoadLogCount =100;
|
||||||
public DataLoaderService(
|
public DataLoaderService(
|
||||||
@@ -45,7 +43,8 @@ public class DataLoaderService : IDataLoaderService
|
|||||||
IMenuService menuService,
|
IMenuService menuService,
|
||||||
IMqttAppService mqttAppService,
|
IMqttAppService mqttAppService,
|
||||||
INlogAppService nlogAppService,
|
INlogAppService nlogAppService,
|
||||||
ITriggerManagementService triggerManagementService) // 添加触发器管理服务参数
|
ITriggerManagementService triggerManagementService, // 添加触发器管理服务参数
|
||||||
|
IEventService eventService) // 添加事件服务参数
|
||||||
{
|
{
|
||||||
_repositoryManager = repositoryManager;
|
_repositoryManager = repositoryManager;
|
||||||
_mapper = mapper;
|
_mapper = mapper;
|
||||||
@@ -57,6 +56,7 @@ public class DataLoaderService : IDataLoaderService
|
|||||||
_mqttAppService = mqttAppService;
|
_mqttAppService = mqttAppService;
|
||||||
_nlogAppService = nlogAppService;
|
_nlogAppService = nlogAppService;
|
||||||
_triggerManagementService = triggerManagementService; // 初始化触发器管理服务
|
_triggerManagementService = triggerManagementService; // 初始化触发器管理服务
|
||||||
|
_eventService = eventService; // 初始化事件服务
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -86,7 +86,7 @@ public class DataLoaderService : IDataLoaderService
|
|||||||
// 加载所有触发器
|
// 加载所有触发器
|
||||||
await LoadAllTriggersAsync();
|
await LoadAllTriggersAsync();
|
||||||
|
|
||||||
OnLoadDataCompleted?.Invoke(this, new DataLoadCompletedEventArgs(true, "数据加载成功"));
|
_eventService.RaiseLoadDataCompleted(this, new DataLoadCompletedEventArgs(true, "数据加载成功"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -161,4 +161,23 @@ public class EventService : IEventService
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region 数据加载事件
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 数据加载完成事件
|
||||||
|
/// </summary>
|
||||||
|
public event EventHandler<DataLoadCompletedEventArgs> OnLoadDataCompleted;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 触发数据加载完成事件
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender">事件发送者</param>
|
||||||
|
/// <param name="e">数据加载完成事件参数</param>
|
||||||
|
public void RaiseLoadDataCompleted(object sender, DataLoadCompletedEventArgs e)
|
||||||
|
{
|
||||||
|
OnLoadDataCompleted?.Invoke(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
@@ -16,6 +16,7 @@ namespace DMS.Infrastructure.Services.Mqtt
|
|||||||
{
|
{
|
||||||
private readonly ILogger<MqttBackgroundService> _logger;
|
private readonly ILogger<MqttBackgroundService> _logger;
|
||||||
private readonly IMqttServiceManager _mqttServiceManager;
|
private readonly IMqttServiceManager _mqttServiceManager;
|
||||||
|
private readonly IEventService _eventService;
|
||||||
private readonly IAppDataStorageService _appDataStorageService;
|
private readonly IAppDataStorageService _appDataStorageService;
|
||||||
private readonly IAppDataCenterService _appDataCenterService;
|
private readonly IAppDataCenterService _appDataCenterService;
|
||||||
private readonly ConcurrentDictionary<int, MqttServer> _mqttServers;
|
private readonly ConcurrentDictionary<int, MqttServer> _mqttServers;
|
||||||
@@ -24,16 +25,18 @@ namespace DMS.Infrastructure.Services.Mqtt
|
|||||||
public MqttBackgroundService(
|
public MqttBackgroundService(
|
||||||
ILogger<MqttBackgroundService> logger,
|
ILogger<MqttBackgroundService> logger,
|
||||||
IMqttServiceManager mqttServiceManager,
|
IMqttServiceManager mqttServiceManager,
|
||||||
|
IEventService eventService,
|
||||||
IAppDataStorageService appDataStorageService,
|
IAppDataStorageService appDataStorageService,
|
||||||
IAppDataCenterService appDataCenterService)
|
IAppDataCenterService appDataCenterService)
|
||||||
{
|
{
|
||||||
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
|
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
|
||||||
_mqttServiceManager = mqttServiceManager ?? throw new ArgumentNullException(nameof(mqttServiceManager));
|
_mqttServiceManager = mqttServiceManager ?? throw new ArgumentNullException(nameof(mqttServiceManager));
|
||||||
|
_eventService = eventService;
|
||||||
_appDataStorageService = appDataStorageService;
|
_appDataStorageService = appDataStorageService;
|
||||||
_appDataCenterService = appDataCenterService ?? throw new ArgumentNullException(nameof(appDataCenterService));
|
_appDataCenterService = appDataCenterService ?? throw new ArgumentNullException(nameof(appDataCenterService));
|
||||||
_mqttServers = new ConcurrentDictionary<int, MqttServer>();
|
_mqttServers = new ConcurrentDictionary<int, MqttServer>();
|
||||||
|
|
||||||
_appDataCenterService.DataLoaderService.OnLoadDataCompleted += OnLoadDataCompleted;
|
_eventService.OnLoadDataCompleted += OnLoadDataCompleted;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnLoadDataCompleted(object? sender, DataLoadCompletedEventArgs e)
|
private void OnLoadDataCompleted(object? sender, DataLoadCompletedEventArgs e)
|
||||||
@@ -250,7 +253,7 @@ namespace DMS.Infrastructure.Services.Mqtt
|
|||||||
{
|
{
|
||||||
_logger.LogInformation("正在释放MQTT后台服务资源...");
|
_logger.LogInformation("正在释放MQTT后台服务资源...");
|
||||||
|
|
||||||
_appDataCenterService.DataLoaderService.OnLoadDataCompleted -= OnLoadDataCompleted;
|
_eventService.OnLoadDataCompleted -= OnLoadDataCompleted;
|
||||||
_reloadSemaphore?.Dispose();
|
_reloadSemaphore?.Dispose();
|
||||||
|
|
||||||
base.Dispose();
|
base.Dispose();
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ namespace DMS.Infrastructure.Services.OpcUa
|
|||||||
public OptimizedOpcUaBackgroundService(
|
public OptimizedOpcUaBackgroundService(
|
||||||
IAppDataCenterService appDataCenterService,
|
IAppDataCenterService appDataCenterService,
|
||||||
IAppDataStorageService appDataStorageService,
|
IAppDataStorageService appDataStorageService,
|
||||||
|
IEventService eventService,
|
||||||
IOpcUaServiceManager opcUaServiceManager,
|
IOpcUaServiceManager opcUaServiceManager,
|
||||||
ILogger<OptimizedOpcUaBackgroundService> logger)
|
ILogger<OptimizedOpcUaBackgroundService> logger)
|
||||||
{
|
{
|
||||||
@@ -30,8 +31,8 @@ namespace DMS.Infrastructure.Services.OpcUa
|
|||||||
_appDataStorageService = appDataStorageService;
|
_appDataStorageService = appDataStorageService;
|
||||||
_opcUaServiceManager = opcUaServiceManager ?? throw new ArgumentNullException(nameof(opcUaServiceManager));
|
_opcUaServiceManager = opcUaServiceManager ?? throw new ArgumentNullException(nameof(opcUaServiceManager));
|
||||||
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
|
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
|
||||||
|
_eventService = eventService;
|
||||||
_appDataCenterService.DataLoaderService.OnLoadDataCompleted += OnLoadDataCompleted;
|
_eventService.OnLoadDataCompleted += OnLoadDataCompleted;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -146,7 +147,7 @@ namespace DMS.Infrastructure.Services.OpcUa
|
|||||||
{
|
{
|
||||||
_logger.LogInformation("正在释放OPC UA后台服务资源...");
|
_logger.LogInformation("正在释放OPC UA后台服务资源...");
|
||||||
|
|
||||||
_appDataCenterService.DataLoaderService.OnLoadDataCompleted -= OnLoadDataCompleted;
|
_eventService.OnLoadDataCompleted -= OnLoadDataCompleted;
|
||||||
_reloadSemaphore?.Dispose();
|
_reloadSemaphore?.Dispose();
|
||||||
|
|
||||||
base.Dispose();
|
base.Dispose();
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public class OptimizedS7BackgroundService : BackgroundService
|
|||||||
_s7ServiceManager = s7ServiceManager;
|
_s7ServiceManager = s7ServiceManager;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
|
|
||||||
_appDataCenterService.DataLoaderService.OnLoadDataCompleted += OnLoadDataCompleted;
|
_eventService.OnLoadDataCompleted += OnLoadDataCompleted;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public class DataEventService : IDataEventService
|
|||||||
// 监听变量值变更事件
|
// 监听变量值变更事件
|
||||||
_eventService.OnVariableValueChanged += OnVariableValueChanged;
|
_eventService.OnVariableValueChanged += OnVariableValueChanged;
|
||||||
_eventService.OnMqttServerChanged += OnMqttServerChanged;
|
_eventService.OnMqttServerChanged += OnMqttServerChanged;
|
||||||
_appDataCenterService.DataLoaderService.OnLoadDataCompleted += OnLoadDataCompleted;
|
_eventService.OnLoadDataCompleted += OnLoadDataCompleted;
|
||||||
// 监听日志变更事件
|
// 监听日志变更事件
|
||||||
// _appDataCenterService.OnLogChanged += _logDataService.OnNlogChanged;
|
// _appDataCenterService.OnLogChanged += _logDataService.OnNlogChanged;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user