Exportar (0) Imprimir
Expandir Tudo

Método CloudQueue.GetMessages (Int32, TimeSpan)

[Este tópico é uma documentação de pré-lançamento e está sujeito a alterações em versões futuras. Os tópicos em branco são incluídos como espaços reservados.]

Gets a list of messages from the queue.

Namespace: Microsoft.WindowsAzure.StorageClient
Assembly: Microsoft.WindowsAzure.StorageClient (em microsoft.windowsazure.storageclient.dll)

'Uso
Dim instance As CloudQueue
Dim messageCount As Integer
Dim visibilityTimeout As TimeSpan
Dim returnValue As IEnumerable(Of CloudQueueMessage)

returnValue = instance.GetMessages(messageCount, visibilityTimeout)

public IEnumerable<CloudQueueMessage> GetMessages (
	int messageCount,
	TimeSpan visibilityTimeout
)
public IEnumerable<CloudQueueMessage> GetMessages (
	int messageCount, 
	TimeSpan visibilityTimeout
)
public function GetMessages (
	messageCount : int, 
	visibilityTimeout : TimeSpan
) : IEnumerable<CloudQueueMessage>

Parâmetros

messageCount

The number of messages to retrieve.

visibilityTimeout

The visibility timeout interval.

Valor retornado

An enumerable collection of messages.

The following code example adds some messages to the queue, retrieves them, and deletes them.

static void RetrieveAndDeleteQueueMessages(Uri queueEndpoint, string accountName, string accountKey)
{
    //Create service client for credentialed access to the Queue service.
    CloudQueueClient queueClient = new CloudQueueClient(queueEndpoint,
        new StorageCredentialsAccountAndKey(accountName, accountKey));

    //Get a reference to a queue in this storage account.
    CloudQueue queue = queueClient.GetQueueReference("myqueue");
    //Create the queue if it does not already exist.
    queue.CreateIfNotExist();

    //Clear any existing messages from the queue.
    queue.Clear();

    //Create some new messages and add them to the queue.
    for (int i = 0; i < 10; i++)
    {
        CloudQueueMessage msg = new CloudQueueMessage("message" + i.ToString());
        queue.AddMessage(msg);
        Console.WriteLine("Adding message with content: " + msg.AsString);
    }

    //Delete five messages from the queue.
    foreach(CloudQueueMessage msg in queue.GetMessages(5))
    {
        Console.WriteLine("Deleting message: " + msg.Id);
        queue.DeleteMessage(msg);
    }

    Console.WriteLine();

    //Delete five more messages from the queue.
    foreach (CloudQueueMessage msg in queue.GetMessages(5))
    {
        Console.WriteLine("Deleting message " + msg.Id);
        queue.DeleteMessage(msg.Id, msg.PopReceipt);
    }
}


The GetMessages method retrieves a specified number of messages from the queue. The maximum number of messages that may be retrieved with a single call to GetMessages is 32.

After messages have been retrieved, they should be deleted from the queue.

When a message is retrieved from the queue, its NextVisibleTime and PopReceipt properties are updated with values provided by the service. The NextVisibleTime indicates the next time that the message will be available to be read, if it is not deleted by the client that retrieved it. This value is calculated by adding the value of the visibilityTimeout parameter to the time at which the message was retrieved. The maximum value that may be specified for the visibilityTimeout parameter is two hours.

The PopReceipt value indicates that the message has been read and is used to verify that the message being deleted is the same one that was retrieved.

After a client retrieves a message, that message is reserved for deletion until the date and time indicated by the message's NextVisibleTime property, and no other client may retrieve the message during that time interval. If the message is not deleted before the time specified by the NextVisibleTime property, it again becomes visible to other clients. If the message is not subsequently retrieved and deleted by another client, the client that retrieved it can still delete it.

When a message is retrieved for the first time, its DequeueCount property is set to 1. If it is not deleted and is subsequently retrieved again, the DequeueCount property is incremented. The client may use this value to determine how many times a message has been retrieved.


Todos os membros estáticos públicos (Compartilhados no Visual Basic) desse tipo são thread-safe. Quaisquer membros de instância não têm garantia de ser thread-safe.

Plataformas de desenvolvimento

Windows XP Professional com Service Pack 2 (SP2)

Plataformas de destino

Contribuições da comunidade

A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
Mostrar:
© 2014 Microsoft