/// <summary> /// Инициализирует экземпляр переменной типа <see cref="QueueConfigurationBase" /> /// и признаком необходимости проводить диагностику /// </summary> /// <param name="configuration">Конфигурация очереди</param> /// <param name="isDiagnostic">Признак проведения диагностики</param> public RabbitMqQueueMessageAdapter(RabbitMqQueueConfiguration configuration, bool isDiagnostic) { _configuration = configuration.ThrowIfNull(nameof(configuration)); _connectionLock = new object(); _isDisposed = false; _isDiagnostic = isDiagnostic; }
/// <summary> /// Инициализирует экземпляр фабрикой, создающей <see cref="IAdvancedBus" />, /// переменной типа <see cref="QueueConfigurationBase" /> /// и признаком необходимости проводить диагностику /// </summary> /// <param name="advancedBusFactory">Фабрика для создания <see cref="IAdvancedBus" /></param> /// <param name="configuration">Конфигурация очереди</param> /// <param name="logger">Интерфейс логгирования</param> public RabbitMqQueueMessageAdapter( IAdvancedBusFactory advancedBusFactory, RabbitMqQueueConfiguration configuration, ILogger <RabbitMqQueueMessageAdapter> logger) { _logger = logger; _advancedBusFactory = advancedBusFactory; _configuration = configuration; }
private static string GetExpiration(BaseMessage message, RabbitMqQueueConfiguration configuration) { if (message.LifeTime.TotalMilliseconds > 0) { return(message.LifeTime.TotalMilliseconds.ToString(CultureInfo.InvariantCulture)); } if (configuration.Lifetime.HasValue) { return(((int)configuration.Lifetime.Value.TotalMilliseconds).ToString(CultureInfo.InvariantCulture)); } return(DefaultLifeTime); }
public static MessageProperties ConvertToProperties(this BaseMessage message, RabbitMqQueueConfiguration configuration) { var expiration = GetExpiration(message, configuration); var properties = new MessageProperties { MessageId = string.IsNullOrEmpty(message.MessageId) ? Guid.NewGuid() .ToString() .ToUpper() : message.MessageId, Headers = message.Properties, DeliveryMode = 2, Expiration = expiration, Timestamp = DateTime.Now.ToFileTimeUtc(), ContentType = GetContentType(message) }; if (!string.IsNullOrWhiteSpace(message.ReplyQueue)) { properties.ReplyTo = message.ReplyQueue; } if (!string.IsNullOrEmpty(message.CorrelationId)) { properties.CorrelationId = message.CorrelationId; } return(properties); }