Class QueueClient


  • public final class QueueClient
    extends Object
    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 this for additional ways to construct the client.

    See Also:
    QueueClientBuilder, QueueAsyncClient, StorageSharedKeyCredential
    • Method Detail

      • getQueueUrl

        public String getQueueUrl()
        Returns:
        the URL of the storage queue.
      • getServiceVersion

        public QueueServiceVersion getServiceVersion()
        Gets the service version the client is using.
        Returns:
        the service version the client is using.
      • getMessageEncoding

        public QueueMessageEncoding getMessageEncoding()
        Gets the message encoding the client is using.
        Returns:
        the message encoding the client is using.
      • getHttpPipeline

        public com.azure.core.http.HttpPipeline getHttpPipeline()
        Gets the HttpPipeline powering this client.
        Returns:
        The pipeline.
      • create

        public void 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.

        Throws:
        QueueStorageException - If a queue with the same name already exists in the queue service.
      • createWithResponse

        public com.azure.core.http.rest.Response<Void> createWithResponse​(Map<String,​String> metadata,
                                                                          Duration timeout,
                                                                          com.azure.core.util.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.

        Parameters:
        metadata - Metadata to associate with the queue. If there is leading or trailing whitespace in any metadata key or value, it must be removed or encoded.
        timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A response that only contains headers and response status code
        Throws:
        QueueStorageException - If a queue with the same name and different metadata already exists in the queue service.
        RuntimeException - if the operation doesn't complete before the timeout concludes.
      • delete

        public void 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.

        Throws:
        QueueStorageException - If the queue doesn't exist
      • deleteWithResponse

        public com.azure.core.http.rest.Response<Void> deleteWithResponse​(Duration timeout,
                                                                          com.azure.core.util.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.

        Parameters:
        timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A response that only contains headers and response status code
        Throws:
        QueueStorageException - If the queue doesn't exist
        RuntimeException - if the operation doesn't complete before the timeout concludes.
      • getProperties

        public QueueProperties 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.

        Returns:
        A response containing a QueueProperties value which contains the metadata and approximate messages count of the queue.
        Throws:
        QueueStorageException - If the queue doesn't exist
      • getPropertiesWithResponse

        public com.azure.core.http.rest.Response<QueueProperties> getPropertiesWithResponse​(Duration timeout,
                                                                                            com.azure.core.util.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.

        Parameters:
        timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A response containing a QueueProperties value which contains the metadata and approximate messages count of the queue.
        Throws:
        QueueStorageException - If the queue doesn't exist
        RuntimeException - if the operation doesn't complete before the timeout concludes.
      • setMetadata

        public void 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.

        Parameters:
        metadata - Metadata to set on the queue
        Throws:
        QueueStorageException - If the queue doesn't exist
      • setMetadataWithResponse

        public com.azure.core.http.rest.Response<Void> setMetadataWithResponse​(Map<String,​String> metadata,
                                                                               Duration timeout,
                                                                               com.azure.core.util.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.

        Parameters:
        metadata - Metadata to set on the queue
        timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A response that only contains headers and response status code
        Throws:
        QueueStorageException - If the queue doesn't exist
        RuntimeException - if the operation doesn't complete before the timeout concludes.
      • getAccessPolicy

        public com.azure.core.http.rest.PagedIterable<QueueSignedIdentifier> 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.

        Returns:
        The stored access policies specified on the queue.
        Throws:
        QueueStorageException - If the queue doesn't exist
      • setAccessPolicy

        public void 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.

        Parameters:
        permissions - Access policies to set on the queue
        Throws:
        QueueStorageException - If the queue doesn't exist, a stored access policy doesn't have all fields filled out, or the queue will have more than five policies.
      • setAccessPolicyWithResponse

        public com.azure.core.http.rest.Response<Void> setAccessPolicyWithResponse​(List<QueueSignedIdentifier> permissions,
                                                                                   Duration timeout,
                                                                                   com.azure.core.util.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.

        Parameters:
        permissions - Access policies to set on the queue
        timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A response that only contains headers and response status code
        Throws:
        QueueStorageException - If the queue doesn't exist, a stored access policy doesn't have all fields filled out, or the queue will have more than five policies.
        RuntimeException - if the operation doesn't complete before the timeout concludes.
      • clearMessages

        public void 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.

        Throws:
        QueueStorageException - If the queue doesn't exist
      • clearMessagesWithResponse

        public com.azure.core.http.rest.Response<Void> clearMessagesWithResponse​(Duration timeout,
                                                                                 com.azure.core.util.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.

        Parameters:
        timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A response that only contains headers and response status code
        Throws:
        QueueStorageException - If the queue doesn't exist
        RuntimeException - if the operation doesn't complete before the timeout concludes.
      • sendMessage

        public SendMessageResult 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.

        Parameters:
        messageText - Message text
        Returns:
        A SendMessageResult value that contains the messageId and popReceipt that are used to interact with the message and other metadata about the enqueued message.
        Throws:
        QueueStorageException - If the queue doesn't exist
      • sendMessage

        public SendMessageResult sendMessage​(com.azure.core.util.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.

        Parameters:
        message - Message content
        Returns:
        A SendMessageResult value that contains the messageId and popReceipt that are used to interact with the message and other metadata about the enqueued message.
        Throws:
        QueueStorageException - If the queue doesn't exist
      • sendMessageWithResponse

        public com.azure.core.http.rest.Response<SendMessageResult> sendMessageWithResponse​(String messageText,
                                                                                            Duration visibilityTimeout,
                                                                                            Duration timeToLive,
                                                                                            Duration timeout,
                                                                                            com.azure.core.util.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.

        Parameters:
        messageText - Message text
        visibilityTimeout - Optional. The timeout period for how long the message is invisible in the queue. If unset the value will default to 0 and the message will be instantly visible. The timeout must be between 0 seconds and 7 days.
        timeToLive - Optional. How long the message will stay alive in the queue. If unset the value will default to 7 days, if Duration.ofSeconds(-1) is passed the message will not expire. The time to live must be Duration.ofSeconds(-1) or any positive number of seconds.
        timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A response containing the SendMessageResult value that contains the messageId and popReceipt that are used to interact with the message and other metadata about the enqueued message.
        Throws:
        QueueStorageException - If the queue doesn't exist or the visibilityTimeout or timeToLive are outside of the allowed limits.
        RuntimeException - if the operation doesn't complete before the timeout concludes.
      • sendMessageWithResponse

        public com.azure.core.http.rest.Response<SendMessageResult> sendMessageWithResponse​(com.azure.core.util.BinaryData message,
                                                                                            Duration visibilityTimeout,
                                                                                            Duration timeToLive,
                                                                                            Duration timeout,
                                                                                            com.azure.core.util.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.

        Parameters:
        message - Message content
        visibilityTimeout - Optional. The timeout period for how long the message is invisible in the queue. If unset the value will default to 0 and the message will be instantly visible. The timeout must be between 0 seconds and 7 days.
        timeToLive - Optional. How long the message will stay alive in the queue. If unset the value will default to 7 days, if Duration.ofSeconds(-1) is passed the message will not expire. The time to live must be Duration.ofSeconds(-1) or any positive number of seconds.
        timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A response containing the SendMessageResult value that contains the messageId and popReceipt that are used to interact with the message and other metadata about the enqueued message.
        Throws:
        QueueStorageException - If the queue doesn't exist or the visibilityTimeout or timeToLive are outside of the allowed limits.
        RuntimeException - if the operation doesn't complete before the timeout concludes.
      • receiveMessage

        public QueueMessageItem 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.

        Returns:
        The first MessageItem in the queue, it contains messageId and popReceipt used to interact with the message, additionally it contains other metadata about the message.
        Throws:
        QueueStorageException - If the queue doesn't exist
      • receiveMessages

        public com.azure.core.http.rest.PagedIterable<QueueMessageItem> 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.

        Parameters:
        maxMessages - Optional. Maximum number of messages to get, if there are less messages exist in the queue than requested all the messages will be returned. If left empty only 1 message will be retrieved, the allowed range is 1 to 32 messages.
        Returns:
        Up to maxMessages ReceiveMessageItem from the queue. Each ReceiveMessageItem contains messageId and popReceipt used to interact with the message and other metadata about the message.
        Throws:
        QueueStorageException - If the queue doesn't exist or maxMessages is outside of the allowed bounds
      • receiveMessages

        public com.azure.core.http.rest.PagedIterable<QueueMessageItem> receiveMessages​(Integer maxMessages,
                                                                                        Duration visibilityTimeout,
                                                                                        Duration timeout,
                                                                                        com.azure.core.util.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.

        Parameters:
        maxMessages - Optional. Maximum number of messages to get, if there are less messages exist in the queue than requested all the messages will be returned. If left empty only 1 message will be retrieved, the allowed range is 1 to 32 messages.
        visibilityTimeout - Optional. The timeout period for how long the message is invisible in the queue. If left empty the received messages will be invisible for 30 seconds. The timeout must be between 1 second and 7 days.
        timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        Up to maxMessages DequeuedMessages from the queue. Each DeqeuedMessage contains messageId and popReceipt used to interact with the message and other metadata about the message.
        Throws:
        QueueStorageException - If the queue doesn't exist or maxMessages or visibilityTimeout is outside of the allowed bounds
        RuntimeException - if the operation doesn't complete before the timeout concludes.
      • peekMessage

        public PeekedMessageItem 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.

        Returns:
        A PeekedMessageItem that contains metadata about the message.
      • peekMessages

        public com.azure.core.http.rest.PagedIterable<PeekedMessageItem> peekMessages​(Integer maxMessages,
                                                                                      Duration timeout,
                                                                                      com.azure.core.util.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.

        Parameters:
        maxMessages - Optional. Maximum number of messages to peek, if there are less messages exist in the queue than requested all the messages will be peeked. If left empty only 1 message will be peeked, the allowed range is 1 to 32 messages.
        timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        Up to maxMessages PeekedMessages from the queue. Each PeekedMessage contains metadata about the message.
        Throws:
        QueueStorageException - If the queue doesn't exist or maxMessages is outside of the allowed bounds
        RuntimeException - if the operation doesn't complete before the timeout concludes.
      • updateMessage

        public UpdateMessageResult 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.

        Parameters:
        messageId - Id of the message to update
        popReceipt - Unique identifier that must match for the message to be updated
        messageText - Updated value for the message
        visibilityTimeout - The timeout period for how long the message is invisible in the queue in seconds. The timeout period must be between 1 second and 7 days. The default value is Duration.ZERO.
        Returns:
        A UpdateMessageResult that contains the new popReceipt to interact with the message, additionally contains the updated metadata about the message.
        Throws:
        QueueStorageException - If the queue or messageId don't exist, the popReceipt doesn't match on the message, or the visibilityTimeout is outside the allowed bounds.
      • updateMessageWithResponse

        public com.azure.core.http.rest.Response<UpdateMessageResult> updateMessageWithResponse​(String messageId,
                                                                                                String popReceipt,
                                                                                                String messageText,
                                                                                                Duration visibilityTimeout,
                                                                                                Duration timeout,
                                                                                                com.azure.core.util.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.

        Parameters:
        messageId - Id of the message to update
        popReceipt - Unique identifier that must match for the message to be updated
        messageText - Updated value for the message
        visibilityTimeout - The timeout period for how long the message is invisible in the queue in seconds. The timeout period must be between 1 second and 7 days. The default value is Duration.ZERO.
        timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A response containing the UpdateMessageResult that contains the new popReceipt to interact with the message, additionally contains the updated metadata about the message.
        Throws:
        QueueStorageException - If the queue or messageId don't exist, the popReceipt doesn't match on the message, or the visibilityTimeout is outside the allowed bounds.
        RuntimeException - if the operation doesn't complete before the timeout concludes.
      • deleteMessage

        public void 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.

        Parameters:
        messageId - Id of the message to deleted
        popReceipt - Unique identifier that must match for the message to be deleted
        Throws:
        QueueStorageException - If the queue or messageId don't exist or the popReceipt doesn't match on the message.
      • deleteMessageWithResponse

        public com.azure.core.http.rest.Response<Void> deleteMessageWithResponse​(String messageId,
                                                                                 String popReceipt,
                                                                                 Duration timeout,
                                                                                 com.azure.core.util.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.

        Parameters:
        messageId - Id of the message to deleted
        popReceipt - Unique identifier that must match for the message to be deleted
        context - Additional context that is passed through the Http pipeline during the service call.
        timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
        Returns:
        A response that only contains headers and response status code
        Throws:
        QueueStorageException - If the queue or messageId don't exist or the popReceipt doesn't match on the message.
        RuntimeException - if the operation doesn't complete before the timeout concludes.
      • getQueueName

        public String getQueueName()
        Get the queue name of the client.

        Code Samples

         String queueName = client.getQueueName();
         System.out.println("The name of the queue is " + queueName);
         
        Returns:
        The name of the queue.
      • getAccountName

        public String getAccountName()
        Get associated account name.
        Returns:
        account name associated with this storage resource.
      • generateSas

        public String 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
         
        Parameters:
        queueServiceSasSignatureValues - QueueServiceSasSignatureValues
        Returns:
        A String representing the SAS query parameters.
      • generateSas

        public String generateSas​(QueueServiceSasSignatureValues queueServiceSasSignatureValues,
                                  com.azure.core.util.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"));
         
        Parameters:
        queueServiceSasSignatureValues - QueueServiceSasSignatureValues
        context - Additional context that is passed through the code when generating a SAS.
        Returns:
        A String representing the SAS query parameters.