Azure Storage Queues Samples

Explore various code samples demonstrating how to interact with Azure Storage Queues using different SDKs.

Sending and Receiving Messages

Learn how to send messages to a queue and then retrieve and process them.

using Azure.Storage.Queues;
using Azure;
using System;
using System.Threading.Tasks;

public class QueueSamples
{
    public static async Task SendReceiveMessagesAsync(string queueUrl, string messageText)
    {
        // Create a QueueClient object
        QueueClient queueClient = new QueueClient(queueUrl);

        // Ensure the queue exists
        await queueClient.CreateIfNotExistsAsync();

        // Send a message to the queue
        await queueClient.SendMessageAsync(messageText);
        Console.WriteLine($"Sent message: {messageText}");

        // Receive messages from the queue
        Response<QueueMessage[]> messages = await queueClient.ReceiveMessagesAsync(visibilityTimeout: TimeSpan.FromSeconds(30), maxMessages: 5);

        Console.WriteLine("Received messages:");
        foreach (QueueMessage message in messages.Value)
        {
            Console.WriteLine($"- {message.MessageText}");
            // Process the message...

            // Delete the message after processing
            await queueClient.DeleteMessageAsync(message.MessageId, message.PopReceipt);
            Console.WriteLine($"Deleted message: {message.MessageId}");
        }
    }
}
from azure.storage.queue import QueueClient
import os

def send_receive_messages(queue_url, message_text):
    # Instantiate a QueueClient
    queue_client = QueueClient.from_url(queue_url)

    # Ensure the queue exists
    queue_client.create_queue()

    # Send a message to the queue
    queue_client.send_message(message_text)
    print(f"Sent message: {message_text}")

    # Receive messages from the queue
    messages = queue_client.receive_messages(num_messages=5, visibilitytimeout=30)

    print("Received messages:")
    for msg in messages:
        print(f"- {msg.message_text}")
        # Process the message...

        # Delete the message after processing
        queue_client.delete_message(msg.message_id, msg.pop_receipt)
        print(f"Deleted message: {msg.message_id}")

if __name__ == "__main__":
    # Replace with your queue URL
    queue_connection_string = os.getenv("AZURE_STORAGE_QUEUE_CONNECTION_STRING")
    queue_name = "my-sample-queue"
    queue_url = f"https://{os.getenv('STORAGE_ACCOUNT_NAME')}.queue.core.windows.net/{queue_name}"
    send_receive_messages(queue_url, "Hello from Python!")
const { QueueClient } = require("@azure/storage-queue");

async function sendReceiveMessages(queueUrl, messageText) {
    // Create a QueueClient
    const queueClient = new QueueClient(queueUrl);

    // Ensure the queue exists
    await queueClient.createIfNotExists();

    // Send a message to the queue
    await queueClient.sendMessage(messageText);
    console.log(`Sent message: ${messageText}`);

    // Receive messages from the queue
    const messages = await queueClient.receiveMessages({
        numberOfMessages: 5,
        visibilityTimeout: 30 // in seconds
    });

    console.log("Received messages:");
    for (const message of messages.receivedMessages) {
        console.log(`- ${message.messageText}`);
        // Process the message...

        // Delete the message after processing
        await queueClient.deleteMessage(message.messageId, message.popReceipt);
        console.log(`Deleted message: ${message.messageId}`);
    }
}
import com.azure.storage.queue.QueueClient;
import com.azure.storage.queue.QueueClientBuilder;
import com.azure.storage.queue.models.QueueMessage;
import java.util.List;
import java.time.Duration;

public class QueueSamples {

    public static void sendReceiveMessages(String queueUrl, String messageText) {
        // Create a QueueClient
        QueueClient queueClient = new QueueClientBuilder()
            .url(queueUrl)
            .buildClient();

        // Ensure the queue exists
        queueClient.createIfNotExists();

        // Send a message to the queue
        queueClient.sendMessage(messageText);
        System.out.println("Sent message: " + messageText);

        // Receive messages from the queue
        List<QueueMessage> messages = queueClient.receiveMessages(5, Duration.ofSeconds(30)).getValue();

        System.out.println("Received messages:");
        for (QueueMessage message : messages) {
            System.out.println("- " + message.getMessageText());
            // Process the message...

            // Delete the message after processing
            queueClient.deleteMessage(message.getMessageId(), message.getPopReceipt());
            System.out.println("Deleted message: " + message.getMessageId());
        }
    }
}

Peek Messages

View messages in the queue without removing them. This is useful for inspecting messages before processing.

using Azure.Storage.Queues;
using Azure;
using System;
using System.Threading.Tasks;

public class QueueSamples
{
    public static async Task PeekMessagesAsync(string queueUrl)
    {
        QueueClient queueClient = new QueueClient(queueUrl);

        Response<QueueMessage[]> messages = await queueClient.PeekMessagesAsync(maxMessages: 3);

        Console.WriteLine("Peeked messages:");
        foreach (QueueMessage message in messages.Value)
        {
            Console.WriteLine($"- {message.MessageText}");
        }
    }
}
from azure.storage.queue import QueueClient

def peek_messages(queue_url):
    queue_client = QueueClient.from_url(queue_url)

    messages = queue_client.peek_messages(num_messages=3)

    print("Peeked messages:")
    for msg in messages:
        print(f"- {msg.message_text}")

if __name__ == "__main__":
    queue_url = "YOUR_QUEUE_URL" # Replace with your queue URL
    peek_messages(queue_url)
const { QueueClient } = require("@azure/storage-queue");

async function peekMessages(queueUrl) {
    const queueClient = new QueueClient(queueUrl);

    const messages = await queueClient.peekMessages({ numberOfMessages: 3 });

    console.log("Peeked messages:");
    for (const message of messages.peekedMessages) {
        console.log(`- ${message.messageText}`);
    }
}
import com.azure.storage.queue.QueueClient;
import com.azure.storage.queue.QueueClientBuilder;
import com.azure.storage.queue.models.QueueMessage;
import java.util.List;

public class QueueSamples {

    public static void peekMessages(String queueUrl) {
        QueueClient queueClient = new QueueClientBuilder()
            .url(queueUrl)
            .buildClient();

        List<QueueMessage> messages = queueClient.peekMessages(3).getValue();

        System.out.println("Peeked messages:");
        for (QueueMessage message : messages) {
            System.out.println("- " + message.getMessageText());
        }
    }
}

Clear a Queue

Remove all messages from a queue. Use with caution!

using Azure.Storage.Queues;
using System.Threading.Tasks;

public class QueueSamples
{
    public static async Task ClearQueueAsync(string queueUrl)
    {
        QueueClient queueClient = new QueueClient(queueUrl);

        await queueClient.ClearMessagesAsync();
        Console.WriteLine("Queue cleared successfully.");
    }
}
from azure.storage.queue import QueueClient

def clear_queue(queue_url):
    queue_client = QueueClient.from_url(queue_url)
    queue_client.clear_messages()
    print("Queue cleared successfully.")

if __name__ == "__main__":
    queue_url = "YOUR_QUEUE_URL" # Replace with your queue URL
    clear_queue(queue_url)
const { QueueClient } = require("@azure/storage-queue");

async function clearQueue(queueUrl) {
    const queueClient = new QueueClient(queueUrl);
    await queueClient.clearMessages();
    console.log("Queue cleared successfully.");
}
import com.azure.storage.queue.QueueClient;
import com.azure.storage.queue.QueueClientBuilder;

public class QueueSamples {

    public static void clearQueue(String queueUrl) {
        QueueClient queueClient = new QueueClientBuilder()
            .url(queueUrl)
            .buildClient();

        queueClient.clearMessages();
        System.out.println("Queue cleared successfully.");
    }
}

Note: Always ensure you have the correct connection string or URL for your Azure Storage Queue. Replace placeholders like YOUR_QUEUE_URL with your actual resource details.