Azure Documentation

Azure Queue Storage

Azure Queue storage is a service that stores large numbers of messages that can be accessed from anywhere in the world via HTTP or HTTPS. A queue-service can contain an unlimited number of messages. Each message can be up to 64 KB in size. The two main services provided by Queue storage are:

  • Queueing of application messages: Queue storage is used to decouple components of cloud applications.
  • Reliable message delivery: For many distributed applications, reliable message delivery is essential.

Key Features of Queue Storage

  • Scalability: Designed to handle a massive number of messages and high throughput.
  • Decoupling: Enables asynchronous communication between different parts of an application.
  • Durability: Messages are stored redundantly to ensure availability.
  • Visibility Timeout: Controls how long a message remains visible to other consumers after it's dequeued.

Getting Started with Queue Storage

To get started with Azure Queue Storage, you'll need an Azure Storage account. You can create one through the Azure portal, Azure CLI, or Azure PowerShell.

Creating a Queue

You can create a queue using the Azure portal or programmatically using Azure SDKs. Here's a conceptual example using the Azure Storage SDK for Python:

from azure.storage.queue import QueueServiceClient

                connect_str = "YOUR_AZURE_STORAGE_CONNECTION_STRING"
                queue_service_client = QueueServiceClient.from_connection_string(connect_str)

                queue_client = queue_service_client.get_queue_client("my-new-queue")
                queue_client.create_queue()

                print("Queue 'my-new-queue' created successfully.")
                

Adding Messages to a Queue

Messages are added to a queue using the enqueue_message operation. The message content must be UTF-8 encoded.

from azure.storage.queue import QueueServiceClient

                connect_str = "YOUR_AZURE_STORAGE_CONNECTION_STRING"
                queue_service_client = QueueServiceClient.from_connection_string(connect_str)
                queue_client = queue_service_client.get_queue_client("my-new-queue")

                message_content = "Hello, Azure Queue Storage!"
                queue_client.send_message(message_content)

                print(f"Message sent: '{message_content}'")
                

Retrieving and Processing Messages

Messages are retrieved from a queue using the receive_message operation. When a message is received, it becomes invisible to other consumers for a specified duration (visibility timeout).

from azure.storage.queue import QueueServiceClient

                connect_str = "YOUR_AZURE_STORAGE_CONNECTION_STRING"
                queue_service_client = QueueServiceClient.from_connection_string(connect_str)
                queue_client = queue_service_client.get_queue_client("my-new-queue")

                messages = queue_client.receive_messages(max_messages=5, visibility_timeout=60) # visibility_timeout in seconds

                for msg in messages:
                    print(f"Received message: {msg.content}")
                    # Process the message here
                    queue_client.delete_message(msg.message_id, msg.pop_receipt)
                    print("Message deleted.")
                

Tip: Always delete a message after it has been successfully processed to prevent duplicate processing.

Learn More