CloudQueue.AddMessage Method (CloudQueueMessage, TimeSpan)

Storage Client Library NET API

[This topic is part of the Microsoft Azure Storage Client Library 1.7, which has been deprecated. See Storage Client Library for the latest version.]

Adds a message to the queue, along with a value specifying how long it can remain in the queue.

Namespace: Microsoft.WindowsAzure.StorageClient
Assembly: Microsoft.WindowsAzure.StorageClient (in Microsoft.WindowsAzure.StorageClient.dll)

Usage

Visual Basic
Dim instance As CloudQueue
Dim message As CloudQueueMessage
Dim timeToLive As TimeSpan

instance.AddMessage(message, timeToLive)

Syntax

Visual Basic
Public Sub AddMessage ( _
	message As CloudQueueMessage, _
	timeToLive As TimeSpan _
)
C#
public void AddMessage (
	CloudQueueMessage message,
	TimeSpan timeToLive
)
C++
public:
void AddMessage (
	CloudQueueMessage^ message, 
	TimeSpan timeToLive
)
J#
JScript

Parameters

message

Type: Microsoft.WindowsAzure.StorageClient.CloudQueueMessage

A message.

timeToLive

Type: System.TimeSpan

A value indicating the message time-to-live.

Example

The following code example creates a queue, adds some messages to it, and reads some messages from it.

C# Copy Code
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();

   //If the message is not null, display it.
   if (msgRead != null)
   {
      Console.WriteLine(msgRead.AsString);
      Console.WriteLine();

      //After reading the message, the client should delete it.
      queue.DeleteMessage(msgRead);
   }
   else
   {
      Console.WriteLine("The queue contains no messages.");
      Console.WriteLine();
   }
                
   //Get up to 10 messages from the queue.
   foreach (var msg in queue.GetMessages(10))
   {
      Console.WriteLine(msg.AsString);
      queue.DeleteMessage(msg);
   }
}

Remarks

The maximum time-to-live allowed is 7 days.

The AddMessage method adds a message to the back of the queue.

A message can be up to 64 KB in size for SDK version 1.6 or newer, or 8 KB in size for older SDK versions. The storage client library encodes the message content using Base64 when EncodeMessage is set to true, its default. Encode messages if message content can contain characters that are invalid in XML.

Note
Encoding with Base64 adds overhead to the message size. You can use Convert.ToBase64String() to verify content encoded with Base64 fits within the 64 KB message size limit.


Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

Windows Vista, Windows 7, Windows Server 2008, Windows 8.1, Windows Server 2012 R2, Windows 8 and Windows Server 2012

Change History

See Also