Amazon.SQS.AmazonSQSClient.ReceiveMessageAsync C# (CSharp) Метод

ReceiveMessageAsync() публичный Метод

Initiates the asynchronous execution of the ReceiveMessage operation.
public ReceiveMessageAsync ( ReceiveMessageRequest request, System cancellationToken = default(CancellationToken) ) : Task
request Amazon.SQS.Model.ReceiveMessageRequest Container for the necessary parameters to execute the ReceiveMessage operation.
cancellationToken System /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. ///
Результат Task
        public Task<ReceiveMessageResponse> ReceiveMessageAsync(ReceiveMessageRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller = new ReceiveMessageRequestMarshaller();
            var unmarshaller = ReceiveMessageResponseUnmarshaller.Instance;

            return InvokeAsync<ReceiveMessageRequest,ReceiveMessageResponse>(request, marshaller, 
                unmarshaller, cancellationToken);
        }

Same methods

AmazonSQSClient::ReceiveMessageAsync ( string queueUrl, System cancellationToken = default(CancellationToken) ) : Task
AmazonSQSClient::ReceiveMessageAsync ( ReceiveMessageRequest request, ReceiveMessageResponse>.AmazonServiceCallback callback, AsyncOptions options = null ) : void
AmazonSQSClient::ReceiveMessageAsync ( string queueUrl, ReceiveMessageResponse>.AmazonServiceCallback callback, AsyncOptions options = null ) : void

Usage Example

Пример #1
0
        public async Task<Amazon.SQS.Model.Message> GetMessage(string queueName, int  timeoutInMilliseconds, int numberOfCacheableMessages)
        {
            Amazon.SQS.Model.Message message = null;
            if (_queue.ContainsKey(queueName) && _queue[queueName].TryDequeue(out message)) return message;
            
            var request = new ReceiveMessageRequest(queueName)
            {
                MaxNumberOfMessages = numberOfCacheableMessages,
                WaitTimeSeconds = (int)TimeSpan.FromMilliseconds(timeoutInMilliseconds).TotalSeconds
            };

            using (var client = new AmazonSQSClient(_credentials))
            {
                var response = await client.ReceiveMessageAsync(request);
                                
                if (response.HttpStatusCode != HttpStatusCode.OK) return message;

                if (response.ContentLength == 0) return message;

                if (!response.Messages.Any()) return message;

                AddToQueue(queueName, response.Messages);

                if(_queue.ContainsKey(queueName))
                    _queue[queueName].TryDequeue(out message);
            }

            return message;
        }
All Usage Examples Of Amazon.SQS.AmazonSQSClient::ReceiveMessageAsync
AmazonSQSClient