CloudQueue.Clear Method
Clears all messages from the queue.
Namespace: Microsoft.WindowsAzure.StorageClient
Assembly: Microsoft.WindowsAzure.StorageClient (in Microsoft.WindowsAzure.StorageClient.dll)
Assembly: Microsoft.WindowsAzure.StorageClient (in Microsoft.WindowsAzure.StorageClient.dll)
The following example gets a reference to a queue, clears any existing messages, and adds some new messages.
static void CreateQueueAndAddMessages(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. CloudQueueMessage msg1 = new CloudQueueMessage("message1"); CloudQueueMessage msg2 = new CloudQueueMessage("message2"); CloudQueueMessage msg3 = new CloudQueueMessage("message3"); //Add the messages to the queue. queue.AddMessage(msg1); queue.AddMessage(msg2); //Add the message with a time-to-live of one hour. queue.AddMessage(msg3, new TimeSpan(1, 0, 0)); //Get one message from the queue. CloudQueueMessage msgRead = queue.GetMessage(); Console.WriteLine(msgRead.AsString); Console.WriteLine(); //After reading the message, the client should delete it. queue.DeleteMessage(msgRead); //Get up to 10 messages from the queue. foreach (var msg in queue.GetMessages(10)) { Console.WriteLine(msg.AsString); queue.DeleteMessage(msg); } }
The Clear method clears all messages from the queue.
If a queue contains a large number of messages, the operation may time out before all messages have been deleted. If the operation times out, the client should retry the operation until it succeeds, to ensure that all messages have been deleted.
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Development Platforms
Windows Vista, Windows 7 and Windows Server 2008Target Platforms
Clear will remove all messages, including hidden messages
While not specifically stated in the documentation, Clear will delete messages that are hidden on the queue because a client has used GetMessage or GetMessages and has not called Delete on the message(s). This makes sense as you are clearing the entire queue, but be aware that when the processes that have references to these messages call Delete later, or attempt any other operation on the message, they will receive an exception.
- 8/23/2011
- MikeVWood