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.