示例#1
0
        public async Task <SendMessageRequest> CreateSendMessageRequest(string countryId, TContent content)
        {
            // ensure queue is available
            var queues = await _sqsClient.ListQueuesAsync(new ListQueuesRequest()
            {
                QueueNamePrefix = "sitespeed"
            });

            string expectedQueueName = $"sitespeed_{countryId}";
            var    queueUrl          = queues.QueueUrls.FirstOrDefault(url => url.EndsWith(expectedQueueName));

            if (queueUrl == null)
            {
                var result = await _sqsClient.CreateQueueAsync(expectedQueueName);

                queueUrl = result.QueueUrl;
            }

            // convert content and prep sqs message request
            var message = _messageSerializer.SerializeAsString(content);

            return(new SendMessageRequest()
            {
                QueueUrl = queueUrl,
                MessageBody = message
            });
        }