using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using JiShe.CollectBus.Common.Models; using JiShe.CollectBus.IotSystems.MessageReceiveds; using JiShe.CollectBus.Protocol.Contracts.Interfaces; using MassTransit; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; namespace JiShe.CollectBus.Consumers { public class ReceivedHeartbeatConsumer:IConsumer { private readonly ILogger _logger; private readonly IServiceProvider _serviceProvider; /// /// /// /// /// public ReceivedHeartbeatConsumer(IServiceProvider serviceProvider, ILogger logger) { this._serviceProvider = serviceProvider; this._logger = logger; } public async Task Consume(ConsumeContext context) { _logger.LogInformation("心跳消费队列开始处理"); var protocolPlugin = _serviceProvider.GetKeyedService("Standard"); if (protocolPlugin == null) { _logger.LogError("【心跳消费队列开始处理】协议不存在!"); } else { await protocolPlugin.HeartbeatAsync(context.Message); _logger.LogInformation("心跳消费队列完成处理"); } } } }