using System.Threading.Tasks; using DMS.Core.Models; namespace DMS.Services.Processors { /// /// 负责将变量数据发布到MQTT的处理器。 /// public class MqttPublishProcessor : IVariableProcessor { // private readonly MqttBackgroundService _mqttBackgroundService; // // public MqttPublishProcessor(MqttBackgroundService mqttBackgroundService) // { // _mqttBackgroundService = mqttBackgroundService; // } /// /// 处理单个变量上下文,如果有关联的MQTT配置,则将其推送到发送队列。 /// /// 包含变量及其元数据的上下文对象。 public async Task ProcessAsync(VariableContext context) { // var variable = context.Data; // if (variable?.VariableMqtts == null || variable.VariableMqtts.Count == 0) // { // return; // 没有关联的MQTT配置,直接返回 // } // // // 遍历所有关联的MQTT配置,并将其推入发送队列 // foreach (var variableMqtt in variable.VariableMqtts) // { // // 确保VariableMqtt对象中包含了最新的Variable数据 // variableMqtt.Variable = variable; // await _mqttBackgroundService.SendVariableAsync(variableMqtt); // } } } }