public async Task PublishAsync(params IMessage[] messages) { if (messages is null) { return; } messages = messages.Where(x => x is not null).ToArray(); if (!messages.Any()) { return; } var tasks = new List <Task>(); foreach (var message in messages) { await _busPublisher.PublishAsync(message); // External RabbitMQ message broker if (_messagingOptions.UseBackgroundDispatcher) { await _asyncMessageDispatcher.PublishAsync(message); continue; } tasks.Add(_moduleClient.PublishAsync(message)); } await Task.WhenAll(tasks); }
public async Task PublishAsync(params IMessage[] messages) { if (messages is null) { return; } messages = messages.Where(x => x is not null).ToArray(); if (!messages.Any()) { return; } var tasks = messages.Select(x => _messagingOptions.UseBackgroundDispatcher ? _asyncMessageDispatcher.PublishAsync(x) : _moduleClient.PublishAsync(x)); await Task.WhenAll(tasks); }