/// <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)); LogMessageInternal(message, true); CheckDisposed(); CheckAndReconnect(); try { var kafkaMessage = message.ConvertToKafkaMessage(); _producer.Produce(_configuration.QueueName, kafkaMessage); _logger.LogDebug("Done to send message to queue with id: {queueId}", _configuration.Id); return(message); } catch (Exception ex) { _logger.LogError(ex, "Kafka PUT failure on queue with ID: {queueId}", _configuration.Id); throw new MessagingException(ex, "Messaging error while sending message. See inner exception for more details"); } }