AWS services or capabilities described in AWS Documentation may vary by region/location. Click Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.
WaitTimeSeconds
parameter.
For more information, see Amazon
SQS Long Poll in the Amazon SQS Developer Guide.
Short poll is the default behavior where a weighted random set of machines is sampled
on a ReceiveMessage
call. This means only the messages on the sampled
machines are returned. If the number of messages in the queue is small (less than
1000), it is likely you will get fewer messages than you requested per ReceiveMessage
call. If the number of messages in the queue is extremely small, you might not receive
any messages in a particular ReceiveMessage
response; in which case you
should repeat the request.
For each message returned, the response includes the following:
Message body
MD5 digest of the message body. For information about MD5, go to http://www.faqs.org/rfcs/rfc1321.html.
Message ID you received when you sent the message to the queue.
Receipt handle.
Message attributes.
MD5 digest of the message attributes.
The receipt handle is the identifier you must provide when deleting the message. For more information, see Queue and Message Identifiers in the Amazon SQS Developer Guide.
You can provide the VisibilityTimeout
parameter in your request, which
will be applied to the messages that Amazon SQS returns in the response. If you do
not include the parameter, the overall visibility timeout for the queue is used for
the returned messages. For more information, see Visibility
Timeout in the Amazon SQS Developer Guide.
Going forward, new attributes might be added. If you are writing code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully.
Namespace: Amazon.SQS.Model
Assembly: AWSSDK.dll
Version: (assembly version)
public class ReceiveMessageRequest : AmazonSQSRequest IRequestEvents
The ReceiveMessageRequest type exposes the following members
Name | Description | |
---|---|---|
![]() |
ReceiveMessageRequest() | Empty constructor used to set properties independently even when a simple constructor is available |
![]() |
ReceiveMessageRequest(string) | Instantiates ReceiveMessageRequest with the parameterized properties |
Name | Type | Description | |
---|---|---|---|
![]() |
AttributeNames | System.Collections.Generic.List<System.String> |
Gets and sets the property AttributeNames.
A list of attributes that need to be returned along with each message. The following lists the names and descriptions of the attributes that can be returned:
|
![]() |
MaxNumberOfMessages | System.Int32 |
Gets and sets the property MaxNumberOfMessages.
The maximum number of messages to return. Amazon SQS never returns more messages than this value but may return fewer. Values can be from 1 to 10. Default is 1. All of the messages are not necessarily returned. |
![]() |
MessageAttributeNames | System.Collections.Generic.List<System.String> |
Gets and sets the property MessageAttributeNames.
The name of the message attribute, where N is the index. The message attribute name can contain the following characters: A-Z, a-z, 0-9, underscore (_), hyphen (-), and period (.). The name must not start or end with a period, and it should not have successive periods. The name is case sensitive and must be unique among all attribute names for the message. The name can be up to 256 characters long. The name cannot start with "AWS." or "Amazon." (or any variations in casing), because these prefixes are reserved for use by Amazon Web Services.
When using |
![]() |
QueueUrl | System.String |
Gets and sets the property QueueUrl.
The URL of the Amazon SQS queue to take action on. |
![]() |
VisibilityTimeout | System.Int32 |
Gets and sets the property VisibilityTimeout.
The duration (in seconds) that the received messages are hidden from subsequent retrieve
requests after being retrieved by a |
![]() |
WaitTimeSeconds | System.Int32 |
Gets and sets the property WaitTimeSeconds.
The duration (in seconds) for which the call will wait for a message to arrive in the queue before returning. If a message is available, the call will return sooner than WaitTimeSeconds. |
This example shows how to receive a message.
var client = new AmazonSQSClient(); var request = new ReceiveMessageRequest { AttributeNames = new List<string>() { "All" }, MaxNumberOfMessages = 5, QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue", VisibilityTimeout = (int)TimeSpan.FromMinutes(10).TotalSeconds, WaitTimeSeconds = (int)TimeSpan.FromSeconds(5).TotalSeconds }; var response = client.ReceiveMessage(request); if (response.Messages.Count > 0) { foreach (var message in response.Messages) { Console.WriteLine("For message ID '" + message.MessageId + "':"); Console.WriteLine(" Body: " + message.Body); Console.WriteLine(" Receipt handle: " + message.ReceiptHandle); Console.WriteLine(" MD5 of body: " + message.MD5OfBody); Console.WriteLine(" MD5 of message attributes: " + message.MD5OfMessageAttributes); Console.WriteLine(" Attributes:"); foreach (var attr in message.Attributes) { Console.WriteLine(" " + attr.Key + ": " + attr.Value); } } } else { Console.WriteLine("No messages received."); }
.NET Framework:
Supported in: 4.5, 4.0, 3.5
.NET for Windows Store apps:
Supported in: Windows 8.1, Windows 8
.NET for Windows Phone:
Supported in: Windows Phone 8.1, Windows Phone 8