using JiShe.CollectBus.MongoDB; using JiShe.CollectBus.Protocol.Contracts.Interfaces; using JiShe.CollectBus.Protocol.Contracts.Models; using MassTransit; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; namespace JiShe.CollectBus.RabbitMQ.Consumers { public class MessageReceivedHeartbeatConsumer : IConsumer { private readonly ILogger _logger; private readonly IServiceProvider _serviceProvider; public MessageReceivedHeartbeatConsumer(ILogger logger, IServiceProvider serviceProvider) { _logger = logger; _serviceProvider = serviceProvider; } public async Task Consume(ConsumeContext context) { _logger.LogInformation("心跳消费队列开始处理"); var protocolPlugin = _serviceProvider.GetKeyedService("StandardProtocol"); if (protocolPlugin == null) { _logger.LogError("【心跳消费队列开始处理】协议不存在!"); } else { await protocolPlugin.HeartbeatAsync(context.Message); _logger.LogInformation("心跳消费队列完成处理"); } } } }