Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }