Exemplo n.º 1
0
 /// <inheritdoc />
 /// <summary>
 ///   Отправляет сообщение в очередь
 /// </summary>
 /// <returns>Отправленное сообщение с заполнеными датой отправки и идентификатором сообщения</returns>
 public BaseMessage Send(BaseMessage message)
 {
     _logger.LogDebug("Try to send message to queue with id: {queueId}", _configuration.Id);
     message.ThrowIfNull(nameof(message));
     CheckDisposed();
     CheckAndReconnect();
     try
     {
         var body = message.GetMessageBodyAsBytes();
         _advancedBus.Publish(_exchange, _configuration.Id, false, message.ConvertToProperties(_configuration), body);
         _logger.LogDebug("Done to send message to queue with id: {queueId}", _configuration.Id);
         LogMessageInternal(message, true);
         return(message);
     }
     catch (Exception ex)
     {
         _logger.LogError(ex, "RabbitMQ PUT failure on queue with ID: {queueId}", _configuration.Id);
         throw new MessagingException(ex, "Messaging error while sending message. See inner exception for more details");
     }
 }