/// <summary> /// 消费者 /// </summary> /// <param name="settings"></param> /// <param name="autoConfig">自动建Exchange、Queue和Bind</param> public Consumer(ConsumerSettings settings, bool autoConfig) { if (settings == null) { throw new ArgumentNullException(nameof(settings)); } if (settings.AmqpConnection == null && settings.AmqpUri == null) { throw new ArgumentNullException("AmqpConnection or AmqpUri must be set."); } _clientName = string.IsNullOrEmpty(settings.ClientName) ? "undefined consumer client" : settings.ClientName; _amqpUri = settings.AmqpUri; if (settings.AmqpConnection != null) { _amqpConnection = settings.AmqpConnection; _clientName = settings.AmqpConnection.ClientProvidedName; } _mode = settings.Mode; _prefetchCount = settings.PrefetchCount <= 0 ? (ushort)1 : (ushort)settings.PrefetchCount; _groupName = string.IsNullOrEmpty(settings.GroupName) ? "default" : settings.GroupName; _consumerCount = settings.ConsumerCount <= 0 ? 1 : settings.ConsumerCount; _consumerSequence = settings.ConsumerSequence <= 0 || settings.ConsumerSequence > _consumerCount ? 1 : settings.ConsumerSequence; _autoConfig = autoConfig; }
/// <summary> /// 消费者 /// </summary> /// <param name="settings"></param> public Consumer(ConsumerSettings settings) : this(settings, true) { }