Пример #1
0
        public async Task PostMessageAsync <T>(string queueName, T message)
        {
            var queueUrl = await GetQueueUrl(queueName);

            try
            {
                var sendMessageRequest = new SendMessageRequest
                {
                    QueueUrl          = queueUrl,
                    MessageBody       = JsonConvert.SerializeObject(message),
                    MessageAttributes = SqsMessageTypeAttribute.CreateAttributes <T>()
                };
                if (_appConfig.AwsQueueIsFifo)
                {
                    sendMessageRequest.MessageGroupId         = typeof(T).Name;
                    sendMessageRequest.MessageDeduplicationId = Guid.NewGuid().ToString();
                }

                await _sqsClient.SendMessageAsync(sendMessageRequest);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"Failed to PostMessagesAsync to queue '{queueName}'. Exception: {ex.Message}");
                throw;
            }
        }
Пример #2
0
        public async Task WriteLogEntryAsync(LogEntry logEntry)
        {
            var queueUrl = await _sqsClient.GetQueueUrlAsync(QueueName);

            var sendMessageRequest = new SendMessageRequest
            {
                QueueUrl          = queueUrl.QueueUrl,
                MessageBody       = JsonConvert.SerializeObject(logEntry),
                MessageAttributes = SqsMessageTypeAttribute.CreateAttributes(typeof(LogEntry).Name)
            };

            if (IsQueueFifo)
            {
                sendMessageRequest.MessageGroupId         = typeof(LogEntry).Name;
                sendMessageRequest.MessageDeduplicationId = Guid.NewGuid().ToString();
            }

            await _sqsClient.SendMessageAsync(sendMessageRequest);
        }