QueueClient Class

Definition

This class provides a client that contains all the operations for interacting with a queue in Azure Storage Queue. Operations allowed by the client are creating and deleting the queue, retrieving and updating metadata and access policies of the queue, and enqueuing, dequeuing, peeking, updating, and deleting messages.

Instantiating an Synchronous Queue Client

QueueClient client = new QueueClientBuilder()
     .connectionString("connectionstring")
     .endpoint("endpoint")
     .buildClient();

View QueueClientBuilder for additional ways to construct the client.

public final class QueueClient
Inheritance
java.lang.Object
QueueClient

Inherited Members

java.lang.Object.clone() java.lang.Object.equals(java.lang.Object) java.lang.Object.finalize() java.lang.Object.getClass() java.lang.Object.hashCode() java.lang.Object.notify() java.lang.Object.notifyAll() java.lang.Object.toString() java.lang.Object.wait() java.lang.Object.wait(long) java.lang.Object.wait(long,int)

Methods

clearMessages()

Deletes all messages in the queue.

Code Samples

Clear the messages

client.clearMessages();
 System.out.println("Clearing messages completed.");

For more information, see the Azure Docs.

clearMessagesWithResponse(Duration timeout, Context context)

Deletes all messages in the queue.

Code Samples

Clear the messages

Response<Void> response = client.clearMessagesWithResponse(Duration.ofSeconds(1), new Context(key1, value1));
 System.out.printf("Clearing messages completed with status code %d", response.getStatusCode());

For more information, see the Azure Docs.

create()

Creates a new queue.

Code Samples

Create a queue

client.create();
 System.out.println("Complete creating queue.");

For more information, see the Azure Docs.

createWithResponse(Map<String,String> metadata, Duration timeout, Context context)

Creates a new queue.

Code Samples

Create a queue with metadata "queue:metadataMap"

Response<Void> response = client.createWithResponse(Collections.singletonMap("queue", "metadataMap"),
     Duration.ofSeconds(1), new Context(key1, value1));
 System.out.println("Complete creating queue with status code: " + response.getStatusCode());

For more information, see the Azure Docs.

delete()

Permanently deletes the queue.

Code Samples

Delete a queue

client.delete();
 System.out.println("Complete deleting the queue.");

For more information, see the Azure Docs.

deleteMessage(String messageId, String popReceipt)

Deletes the specified message in the queue

Code Samples

Delete the first message

QueueMessageItem queueMessageItem = client.receiveMessage();
 client.deleteMessage(queueMessageItem.getMessageId(), queueMessageItem.getPopReceipt());
 System.out.println("Complete deleting the message.");

For more information, see the Azure Docs.

deleteMessageWithResponse(String messageId, String popReceipt, Duration timeout, Context context)

Deletes the specified message in the queue

Code Samples

Delete the first message

QueueMessageItem queueMessageItem = client.receiveMessage();
 Response<Void> response = client.deleteMessageWithResponse(queueMessageItem.getMessageId(),
     queueMessageItem.getPopReceipt(), Duration.ofSeconds(1), new Context(key1, value1));
 System.out.println("Complete deleting the message with status code " + response.getStatusCode());

For more information, see the Azure Docs.

deleteWithResponse(Duration timeout, Context context)

Permanently deletes the queue.

Code Samples

Delete a queue

Response<Void> response = client.deleteWithResponse(Duration.ofSeconds(1), new Context(key1, value1));
 System.out.println("Complete deleting the queue with status code: " + response.getStatusCode());

For more information, see the Azure Docs.

generateSas(QueueServiceSasSignatureValues queueServiceSasSignatureValues)

Generates a service sas for the queue using the specified QueueServiceSasSignatureValues

Note : The client must be authenticated via StorageSharedKeyCredential

See QueueServiceSasSignatureValues for more information on how to construct a service SAS.

Code Samples

OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1);
 QueueSasPermission permission = new QueueSasPermission().setReadPermission(true);
 
 QueueServiceSasSignatureValues values = new QueueServiceSasSignatureValues(expiryTime, permission)
     .setStartTime(OffsetDateTime.now());
 
 client.generateSas(values); // Client must be authenticated via StorageSharedKeyCredential
generateSas(QueueServiceSasSignatureValues queueServiceSasSignatureValues, Context context)

Generates a service sas for the queue using the specified QueueServiceSasSignatureValues

Note : The client must be authenticated via StorageSharedKeyCredential

See QueueServiceSasSignatureValues for more information on how to construct a service SAS.

Code Samples

OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1);
 QueueSasPermission permission = new QueueSasPermission().setReadPermission(true);
 
 QueueServiceSasSignatureValues values = new QueueServiceSasSignatureValues(expiryTime, permission)
     .setStartTime(OffsetDateTime.now());
 
 // Client must be authenticated via StorageSharedKeyCredential
 client.generateSas(values, new Context("key", "value"));
getAccessPolicy()

Retrieves stored access policies specified on the queue.

Code Samples

List the stored access policies

for (QueueSignedIdentifier permission : client.getAccessPolicy()) {
     System.out.printf("Access policy %s allows these permissions: %s", permission.getId(),
         permission.getAccessPolicy().getPermissions());
 }

For more information, see the Azure Docs.

getAccountName()

Get associated account name.

getHttpPipeline()

Gets the HttpPipeline powering this client.

getMessageEncoding()

Gets the message encoding the client is using.

getProperties()

Retrieves metadata and approximate message count of the queue.

Code Samples

Get the properties of the queue

QueueProperties properties = client.getProperties();
 System.out.printf("Metadata: %s, Approximate message count: %d", properties.getMetadata(),
     properties.getApproximateMessagesCount());

For more information, see the Azure Docs.

getPropertiesWithResponse(Duration timeout, Context context)

Retrieves metadata and approximate message count of the queue.

Code Samples

Get the properties of the queue

QueueProperties properties = client.getPropertiesWithResponse(Duration.ofSeconds(1),
     new Context(key1, value1)).getValue();
 System.out.printf("Metadata: %s, Approximate message count: %d", properties.getMetadata(),
     properties.getApproximateMessagesCount());

For more information, see the Azure Docs.

getQueueName()

Get the queue name of the client.

Code Samples

String queueName = client.getQueueName();
 System.out.println("The name of the queue is " + queueName);
getQueueUrl()
getServiceVersion()

Gets the service version the client is using.

peekMessage()

Peeks the first message in the queue. Peeked messages don't contain the necessary information needed to interact with the message nor will it hide messages from other operations on the queue.

Code Samples

Peek the first message

PeekedMessageItem peekedMessageItem = client.peekMessage();
 System.out.println("Complete peeking the message: " + peekedMessageItem.getBody().toString());

For more information, see the Azure Docs.

peekMessages(Integer maxMessages, Duration timeout, Context context)

Peek messages from the front of the queue up to the maximum number of messages. Peeked messages don't contain the necessary information needed to interact with the message nor will it hide messages from other operations on the queue.

Code Samples

Peek up to the first five messages

client.peekMessages(5, Duration.ofSeconds(1), new Context(key1, value1)).forEach(
     peekMessage -> System.out.printf("Peeked message %s has been received %d times",
         peekMessage.getMessageId(), peekMessage.getDequeueCount())
 );

For more information, see the Azure Docs.

receiveMessage()

Retrieves the first message in the queue and hides it from other operations for 30 seconds.

Code Samples

Receive a message

QueueMessageItem queueMessageItem = client.receiveMessage();
 System.out.println("Complete receiving the message: " + queueMessageItem.getMessageId());

For more information, see the Azure Docs.

receiveMessages(Integer maxMessages)

Retrieves up to the maximum number of messages from the queue and hides them from other operations for 30 seconds.

Code Samples

Receive up to 5 messages

for (QueueMessageItem message : client.receiveMessages(5)) {
     System.out.printf("Received %s and it becomes visible at %s",
         message.getMessageId(), message.getTimeNextVisible());
 }

For more information, see the Azure Docs.

receiveMessages(Integer maxMessages, Duration visibilityTimeout, Duration timeout, Context context)

Retrieves up to the maximum number of messages from the queue and hides them from other operations for the timeout period.

Code Samples

Receive up to 5 messages and give them a 60 second timeout period

for (QueueMessageItem message : client.receiveMessages(5, Duration.ofSeconds(60),
     Duration.ofSeconds(1), new Context(key1, value1))) {
     System.out.printf("Received %s and it becomes visible at %s",
         message.getMessageId(), message.getTimeNextVisible());
 }

For more information, see the Azure Docs.

sendMessage(BinaryData message)

Sends a message that has a time-to-live of 7 days and is instantly visible.

Code Samples

Sends a message of "Hello, Azure"

SendMessageResult response = client.sendMessage(BinaryData.fromString("Hello msg"));
 System.out.println("Complete enqueuing the message with message Id" + response.getMessageId());

For more information, see the Azure Docs.

sendMessage(String messageText)

Sends a message that has a time-to-live of 7 days and is instantly visible.

Code Samples

Sends a message of "Hello, Azure"

SendMessageResult response = client.sendMessage("hello msg");
 System.out.println("Complete enqueuing the message with message Id" + response.getMessageId());

For more information, see the Azure Docs.

sendMessageWithResponse(BinaryData message, Duration visibilityTimeout, Duration timeToLive, Duration timeout, Context context)

Sends a message with a given time-to-live and a timeout period where the message is invisible in the queue.

Code Samples

Add a message of "Hello, Azure" that has a timeout of 5 seconds

SendMessageResult sentMessageItem = client.sendMessageWithResponse(BinaryData.fromString("Hello, Azure"),
     Duration.ofSeconds(5), null, Duration.ofSeconds(1), new Context(key1, value1)).getValue();
 System.out.printf("Message %s expires at %s", sentMessageItem.getMessageId(),
     sentMessageItem.getExpirationTime());

Add a message of "Goodbye, Azure" that has a time to live of 5 seconds

SendMessageResult enqueuedMessage = client.sendMessageWithResponse(BinaryData.fromString("Goodbye, Azure"),
     null, Duration.ofSeconds(5), Duration.ofSeconds(1), new Context(key1, value1)).getValue();
 System.out.printf("Message %s expires at %s", enqueuedMessage.getMessageId(),
     enqueuedMessage.getExpirationTime());

For more information, see the Azure Docs.

sendMessageWithResponse(String messageText, Duration visibilityTimeout, Duration timeToLive, Duration timeout, Context context)

Sends a message with a given time-to-live and a timeout period where the message is invisible in the queue.

Code Samples

Add a message of "Hello, Azure" that has a timeout of 5 seconds

SendMessageResult sentMessageItem = client.sendMessageWithResponse("Hello, Azure",
     Duration.ofSeconds(5), null, Duration.ofSeconds(1), new Context(key1, value1)).getValue();
 System.out.printf("Message %s expires at %s", sentMessageItem.getMessageId(),
     sentMessageItem.getExpirationTime());

Add a message of "Goodbye, Azure" that has a time to live of 5 seconds

SendMessageResult enqueuedMessage = client.sendMessageWithResponse("Goodbye, Azure",
     null, Duration.ofSeconds(5), Duration.ofSeconds(1), new Context(key1, value1)).getValue();
 System.out.printf("Message %s expires at %s", enqueuedMessage.getMessageId(),
     enqueuedMessage.getExpirationTime());

For more information, see the Azure Docs.

setAccessPolicy(List<QueueSignedIdentifier> permissions)

Sets stored access policies on the queue.

Code Samples

Set a read only stored access policy

QueueAccessPolicy accessPolicy = new QueueAccessPolicy().setPermissions("r")
     .setStartsOn(OffsetDateTime.now(ZoneOffset.UTC))
     .setExpiresOn(OffsetDateTime.now(ZoneOffset.UTC).plusDays(10));
 QueueSignedIdentifier permission = new QueueSignedIdentifier().setId("mypolicy").setAccessPolicy(accessPolicy);
 client.setAccessPolicy(Collections.singletonList(permission));
 System.out.println("Setting access policies completed.");

For more information, see the Azure Docs.

setAccessPolicyWithResponse(List<QueueSignedIdentifier> permissions, Duration timeout, Context context)

Sets stored access policies on the queue.

Code Samples

Set a read only stored access policy

QueueAccessPolicy accessPolicy = new QueueAccessPolicy().setPermissions("r")
     .setStartsOn(OffsetDateTime.now(ZoneOffset.UTC))
     .setExpiresOn(OffsetDateTime.now(ZoneOffset.UTC).plusDays(10));
 QueueSignedIdentifier permission = new QueueSignedIdentifier().setId("mypolicy").setAccessPolicy(accessPolicy);
 Response<Void> response = client.setAccessPolicyWithResponse(Collections.singletonList(permission),
     Duration.ofSeconds(1), new Context(key1, value1));
 System.out.printf("Setting access policies completed with status code %d", response.getStatusCode());

For more information, see the Azure Docs.

setMetadata(Map<String,String> metadata)

Sets the metadata of the queue. Passing in a null value for metadata will clear the metadata associated with the queue.

Code Samples

Set the queue's metadata to "queue:metadataMap"

client.setMetadata(Collections.singletonMap("queue", "metadataMap"));
 System.out.println("Setting metadata completed.");

Clear the queue's metadata

client.setMetadata(null);
 System.out.println("Clearing metadata completed.");

For more information, see the Azure Docs.

setMetadataWithResponse(Map<String,String> metadata, Duration timeout, Context context)

Sets the metadata of the queue. Passing in a null value for metadata will clear the metadata associated with the queue.

Code Samples

Set the queue's metadata to "queue:metadataMap"

client.setMetadataWithResponse(Collections.singletonMap("queue", "metadataMap"),
     Duration.ofSeconds(1), new Context(key1, value1));
 System.out.println("Setting metadata completed.");

Clear the queue's metadata

Response<Void> response = client.setMetadataWithResponse(null, Duration.ofSeconds(1),
     new Context(key1, value1));
 System.out.printf("Clearing metadata completed with status code %d", response.getStatusCode());

For more information, see the Azure Docs.

updateMessage(String messageId, String popReceipt, String messageText, Duration visibilityTimeout)

Updates the specific message in the queue with a new message and resets the visibility timeout.

Code Samples

Dequeue the first message and update it to "Hello again, Azure" and hide it for 5 seconds

QueueMessageItem queueMessageItem = client.receiveMessage();
 UpdateMessageResult result = client.updateMessage(queueMessageItem.getMessageId(),
     queueMessageItem.getPopReceipt(), "newText", null);
 System.out.println("Complete updating the message with the receipt " + result.getPopReceipt());

For more information, see the Azure Docs.

updateMessageWithResponse(String messageId, String popReceipt, String messageText, Duration visibilityTimeout, Duration timeout, Context context)

Updates the specific message in the queue with a new message and resets the visibility timeout.

Code Samples

Dequeue the first message and update it to "Hello again, Azure" and hide it for 5 seconds

QueueMessageItem queueMessageItem = client.receiveMessage();
 Response<UpdateMessageResult> response = client.updateMessageWithResponse(queueMessageItem.getMessageId(),
     queueMessageItem.getPopReceipt(), "newText", null, Duration.ofSeconds(1),
     new Context(key1, value1));
 System.out.println("Complete updating the message with status code " + response.getStatusCode());

For more information, see the Azure Docs.

Applies to