public final class QueueAsyncClient extends Object
Instantiating an Asynchronous Queue Client
QueueAsyncClient client = new QueueClientBuilder() .connectionString("connectionstring") .endpoint("endpoint") .buildAsyncClient();
View this
for additional ways to construct the client.
QueueClientBuilder
,
QueueClient
,
StorageSharedKeyCredential
Modifier and Type | Method and Description |
---|---|
Mono<Void> |
clearMessages()
Deletes all messages in the queue.
|
Mono<com.azure.core.http.rest.Response<Void>> |
clearMessagesWithResponse()
Deletes all messages in the queue.
|
Mono<Void> |
create()
Creates a new queue.
|
Mono<com.azure.core.http.rest.Response<Void>> |
createWithResponse(Map<String,String> metadata)
Creates a new queue.
|
Mono<Void> |
delete()
Permanently deletes the queue.
|
Mono<Void> |
deleteMessage(String messageId,
String popReceipt)
Deletes the specified message in the queue
|
Mono<com.azure.core.http.rest.Response<Void>> |
deleteMessageWithResponse(String messageId,
String popReceipt)
Deletes the specified message in the queue
|
Mono<com.azure.core.http.rest.Response<Void>> |
deleteWithResponse()
Permanently deletes the queue.
|
String |
generateSas(QueueServiceSasSignatureValues queueServiceSasSignatureValues)
Generates a service sas for the queue using the specified
QueueServiceSasSignatureValues |
String |
generateSas(QueueServiceSasSignatureValues queueServiceSasSignatureValues,
com.azure.core.util.Context context)
Generates a service sas for the queue using the specified
QueueServiceSasSignatureValues |
com.azure.core.http.rest.PagedFlux<QueueSignedIdentifier> |
getAccessPolicy()
Retrieves stored access policies specified on the queue.
|
String |
getAccountName()
Get associated account name.
|
com.azure.core.http.HttpPipeline |
getHttpPipeline()
Gets the
HttpPipeline powering this client. |
Mono<QueueProperties> |
getProperties()
Retrieves metadata and approximate message count of the queue.
|
Mono<com.azure.core.http.rest.Response<QueueProperties>> |
getPropertiesWithResponse()
Retrieves metadata and approximate message count of the queue.
|
String |
getQueueName()
Get the queue name of the client.
|
String |
getQueueUrl() |
QueueServiceVersion |
getServiceVersion()
Gets the service version the client is using.
|
Mono<PeekedMessageItem> |
peekMessage()
Peeks the first message in the queue.
|
com.azure.core.http.rest.PagedFlux<PeekedMessageItem> |
peekMessages(Integer maxMessages)
Peek messages from the front of the queue up to the maximum number of messages.
|
Mono<QueueMessageItem> |
receiveMessage()
Retrieves the first message in the queue and hides it from other operations for 30 seconds.
|
com.azure.core.http.rest.PagedFlux<QueueMessageItem> |
receiveMessages(Integer maxMessages)
Retrieves up to the maximum number of messages from the queue and hides them from other operations for 30
seconds.
|
com.azure.core.http.rest.PagedFlux<QueueMessageItem> |
receiveMessages(Integer maxMessages,
Duration visibilityTimeout)
Retrieves up to the maximum number of messages from the queue and hides them from other operations for the
timeout period.
|
Mono<SendMessageResult> |
sendMessage(String messageText)
Enqueues a message that has a time-to-live of 7 days and is instantly visible.
|
Mono<com.azure.core.http.rest.Response<SendMessageResult>> |
sendMessageWithResponse(String messageText,
Duration visibilityTimeout,
Duration timeToLive)
Enqueues a message with a given time-to-live and a timeout period where the message is invisible in the queue.
|
Mono<Void> |
setAccessPolicy(Iterable<QueueSignedIdentifier> permissions)
Sets stored access policies on the queue.
|
Mono<com.azure.core.http.rest.Response<Void>> |
setAccessPolicyWithResponse(Iterable<QueueSignedIdentifier> permissions)
Sets stored access policies on the queue.
|
Mono<Void> |
setMetadata(Map<String,String> metadata)
Sets the metadata of the queue.
|
Mono<com.azure.core.http.rest.Response<Void>> |
setMetadataWithResponse(Map<String,String> metadata)
Sets the metadata of the queue.
|
Mono<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.
|
Mono<com.azure.core.http.rest.Response<UpdateMessageResult>> |
updateMessageWithResponse(String messageId,
String popReceipt,
String messageText,
Duration visibilityTimeout)
Updates the specific message in the queue with a new message and resets the visibility timeout.
|
public String getQueueUrl()
public QueueServiceVersion getServiceVersion()
public com.azure.core.http.HttpPipeline getHttpPipeline()
HttpPipeline
powering this client.public Mono<Void> create()
Code Samples
Create a queue
client.create().subscribe( response -> { }, error -> System.err.print(error.toString()), () -> System.out.println("Complete creating the queue!") );
For more information, see the Azure Docs.
QueueStorageException
- If a queue with the same name already exists in the queue service.public Mono<com.azure.core.http.rest.Response<Void>> createWithResponse(Map<String,String> metadata)
Code Samples
Create a queue with metadata "queue:metadataMap"
client.createWithResponse(Collections.singletonMap("queue", "metadataMap")).subscribe( response -> System.out.println("Complete creating the queue with status code:" + response.getStatusCode()), error -> System.err.print(error.toString()) );
For more information, see the Azure Docs.
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.QueueStorageException
- If a queue with the same name and different metadata already exists in the queue
service.public Mono<Void> delete()
Code Samples
Delete a queue
client.delete().doOnSuccess( response -> System.out.println("Deleting the queue completed.") );
For more information, see the Azure Docs.
QueueStorageException
- If the queue doesn't existpublic Mono<com.azure.core.http.rest.Response<Void>> deleteWithResponse()
Code Samples
Delete a queue
client.deleteWithResponse().subscribe( response -> System.out.println("Deleting the queue completed with status code: " + response.getStatusCode()) );
For more information, see the Azure Docs.
QueueStorageException
- If the queue doesn't existpublic Mono<QueueProperties> getProperties()
Code Samples
Get the properties of the queue
client.getProperties() .subscribe(properties -> { System.out.printf("Metadata: %s, Approximate message count: %d", properties.getMetadata(), properties.getApproximateMessagesCount()); });
For more information, see the Azure Docs.
QueueProperties
value which contains the metadata and approximate
messages count of the queue.QueueStorageException
- If the queue doesn't existpublic Mono<com.azure.core.http.rest.Response<QueueProperties>> getPropertiesWithResponse()
Code Samples
Get the properties of the queue
client.getPropertiesWithResponse() .subscribe(response -> { QueueProperties properties = response.getValue(); System.out.printf("Metadata: %s, Approximate message count: %d", properties.getMetadata(), properties.getApproximateMessagesCount()); });
For more information, see the Azure Docs.
QueueProperties
value which contains the metadata and approximate
messages count of the queue.QueueStorageException
- If the queue doesn't existpublic Mono<Void> setMetadata(Map<String,String> metadata)
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")) .subscribe(response -> System.out.println("Setting metadata completed."));
Clear the queue's metadata
client.setMetadata(null) .subscribe(response -> System.out.println("Clearing metadata completed."));
For more information, see the Azure Docs.
metadata
- Metadata to set on the queueQueueStorageException
- If the queue doesn't existpublic Mono<com.azure.core.http.rest.Response<Void>> setMetadataWithResponse(Map<String,String> metadata)
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")) .subscribe(response -> System.out.printf("Setting metadata completed with status code %d", response.getStatusCode()));
Clear the queue's metadata
client.setMetadataWithResponse(null) .subscribe(response -> System.out.printf("Clearing metadata completed with status code %d", response.getStatusCode()));
For more information, see the Azure Docs.
metadata
- Metadata to set on the queueQueueStorageException
- If the queue doesn't existpublic com.azure.core.http.rest.PagedFlux<QueueSignedIdentifier> getAccessPolicy()
Code Samples
List the stored access policies
client.getAccessPolicy() .subscribe(result -> System.out.printf("Access policy %s allows these permissions: %s", result.getId(), result.getAccessPolicy().getPermissions()));
For more information, see the Azure Docs.
QueueStorageException
- If the queue doesn't existpublic Mono<Void> setAccessPolicy(Iterable<QueueSignedIdentifier> permissions)
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)) .subscribe(response -> System.out.println("Setting access policies completed."));
For more information, see the Azure Docs.
permissions
- Access policies to set on the queueQueueStorageException
- 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.public Mono<com.azure.core.http.rest.Response<Void>> setAccessPolicyWithResponse(Iterable<QueueSignedIdentifier> permissions)
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.setAccessPolicyWithResponse(Collections.singletonList(permission)) .subscribe(response -> System.out.printf("Setting access policies completed with status code %d", response.getStatusCode()));
For more information, see the Azure Docs.
permissions
- Access policies to set on the queueQueueStorageException
- 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.public Mono<Void> clearMessages()
Code Samples
Clear the messages
client.clearMessages().subscribe( response -> System.out.println("Clearing messages completed."));
For more information, see the Azure Docs.
QueueStorageException
- If the queue doesn't existpublic Mono<com.azure.core.http.rest.Response<Void>> clearMessagesWithResponse()
Code Samples
Clear the messages
client.clearMessagesWithResponse().doOnSuccess( response -> System.out.println("Clearing messages completed with status code: " + response.getStatusCode()) );
For more information, see the Azure Docs.
QueueStorageException
- If the queue doesn't existpublic Mono<SendMessageResult> sendMessage(String messageText)
Code Samples
Enqueue a message of "Hello, Azure"
client.sendMessage("Hello, Azure").subscribe( response -> { }, error -> System.err.print(error.toString()), () -> System.out.println("Complete enqueuing the message!") );
For more information, see the Azure Docs.
messageText
- Message textSendMessageResult
value that contains the messageId
and popReceipt
that are used to interact with the message
and other metadata about the enqueued message.QueueStorageException
- If the queue doesn't existpublic Mono<com.azure.core.http.rest.Response<SendMessageResult>> sendMessageWithResponse(String messageText, Duration visibilityTimeout, Duration timeToLive)
Code Samples
Add a message of "Hello, Azure" that has a timeout of 5 seconds
client.sendMessageWithResponse("Hello, Azure", Duration.ofSeconds(5), null).subscribe( response -> System.out.printf("Message %s expires at %s", response.getValue().getMessageId(), response.getValue().getExpirationTime()), error -> System.err.print(error.toString()), () -> System.out.println("Complete enqueuing the message!") );
Add a message of "Goodbye, Azure" that has a time to live of 5 seconds
client.sendMessageWithResponse("Goodbye, Azure", null, Duration.ofSeconds(5)).subscribe( response -> System.out.printf("Message %s expires at %s", response.getValue().getMessageId(), response.getValue().getExpirationTime()), error -> System.err.print(error.toString()), () -> System.out.println("Complete enqueuing the message!") );
For more information, see the Azure Docs.
messageText
- Message textvisibilityTimeout
- 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 -1 is passed the message will not expire. The time to live must be -1 or any positive number.SendMessageResult
value that contains the messageId
and popReceipt
that are used to interact with the message
and other metadata about the enqueued message.QueueStorageException
- If the queue doesn't exist or the visibilityTimeout
or timeToLive
are outside of the allowed limits.public Mono<QueueMessageItem> receiveMessage()
Code Samples
Dequeue a message
client.receiveMessage().subscribe( message -> System.out.println("The message got from getMessages operation: " + message.getMessageText()), error -> System.err.print(error.toString()), () -> System.out.println("Complete receiving the message!") );
For more information, see the Azure Docs.
QueueMessageItem
in the queue, it contains messageId
and popReceipt
used to interact with the message,
additionally it contains other metadata about the message.QueueStorageException
- If the queue doesn't existpublic com.azure.core.http.rest.PagedFlux<QueueMessageItem> receiveMessages(Integer maxMessages)
Code Samples
Dequeue up to 5 messages
client.receiveMessages(5).subscribe( message -> System.out.println("The message got from getMessages operation: " + message.getMessageText()), error -> System.err.print(error.toString()), () -> System.out.println("Complete receiving the message!") );
For more information, see the Azure Docs.
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.maxMessages
ReceiveMessageItem
from the queue.
Each DequeuedMessage contains messageId
and
popReceipt
used to interact with the message and
other metadata about the message.QueueStorageException
- If the queue doesn't exist or maxMessages
is outside of the allowed boundspublic com.azure.core.http.rest.PagedFlux<QueueMessageItem> receiveMessages(Integer maxMessages, Duration visibilityTimeout)
Code Samples
Dequeue up to 5 messages and give them a 60 second timeout period
client.receiveMessages(5, Duration.ofSeconds(60)) .subscribe( message -> System.out.println("The message got from getMessages operation: " + message.getMessageText()), error -> System.err.print(error.toString()), () -> System.out.println("Complete receiving the message!") );
For more information, see the Azure Docs.
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 dequeued messages will be invisible for 30 seconds. The timeout must be between 1 second and 7 days.maxMessages
DequeuedMessages
from the queue. Each DeqeuedMessage
contains messageId
and
popReceipt
used to interact with the message and other metadata about the message.QueueStorageException
- If the queue doesn't exist or maxMessages
or visibilityTimeout
is
outside of the allowed boundspublic Mono<PeekedMessageItem> peekMessage()
Code Samples
Peek the first message
client.peekMessage().subscribe( peekMessages -> System.out.println("The message got from peek operation: " + peekMessages.getMessageText()), error -> System.err.print(error.toString()), () -> System.out.println("Complete peeking the message!") );
For more information, see the Azure Docs.
PeekedMessageItem
that contains metadata about the message.public com.azure.core.http.rest.PagedFlux<PeekedMessageItem> peekMessages(Integer maxMessages)
Code Samples
Peek up to the first five messages
client.peekMessages(5).subscribe( peekMessage -> System.out.printf("Peeked message %s has been received %d times", peekMessage.getMessageId(), peekMessage.getDequeueCount()), error -> System.err.print(error.toString()), () -> System.out.println("Complete peeking the message!") );
For more information, see the Azure Docs.
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.maxMessages
PeekedMessages
from the queue. Each PeekedMessage
contains metadata about the message.QueueStorageException
- If the queue doesn't exist or maxMessages
is outside of the allowed boundspublic Mono<UpdateMessageResult> updateMessage(String messageId, String popReceipt, String messageText, Duration visibilityTimeout)
Code Samples
Dequeue the first message and update it to "Hello again, Azure" and hide it for 5 seconds
client.receiveMessage().subscribe( message -> { client.updateMessage("newText", message.getMessageId(), message.getPopReceipt(), null).subscribe( response -> { }, updateError -> System.err.print(updateError.toString()), () -> System.out.println("Complete updating the message!") ); }, error -> System.err.print(error.toString()), () -> System.out.println("Complete receiving the message!") );
For more information, see the Azure Docs.
messageId
- Id of the message to updatepopReceipt
- Unique identifier that must match for the message to be updatedmessageText
- Updated value for the messagevisibilityTimeout
- 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.UpdateMessageResult
that contains the new
popReceipt
to interact with the message,
additionally contains the updated metadata about the message.QueueStorageException
- If the queue or messageId don't exist, the popReceipt doesn't match on the message,
or the visibilityTimeout
is outside the allowed boundspublic Mono<com.azure.core.http.rest.Response<UpdateMessageResult>> updateMessageWithResponse(String messageId, String popReceipt, String messageText, Duration visibilityTimeout)
Code Samples
Dequeue the first message and update it to "Hello again, Azure" and hide it for 5 seconds
client.receiveMessage().subscribe( message -> { client.updateMessageWithResponse(message.getMessageId(), message.getPopReceipt(), "newText", null).subscribe( response -> System.out.println("Complete updating the message with status code:" + response.getStatusCode()), updateError -> System.err.print(updateError.toString()), () -> System.out.println("Complete updating the message!") ); }, error -> System.err.print(error.toString()), () -> System.out.println("Complete receiving the message!") );
For more information, see the Azure Docs.
messageId
- Id of the message to updatepopReceipt
- Unique identifier that must match for the message to be updatedmessageText
- Updated value for the messagevisibilityTimeout
- 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.UpdateMessageResult
that contains the new
popReceipt
to interact with the message,
additionally contains the updated metadata about the message.QueueStorageException
- If the queue or messageId don't exist, the popReceipt doesn't match on the message,
or the visibilityTimeout
is outside the allowed boundspublic Mono<Void> deleteMessage(String messageId, String popReceipt)
Code Samples
Delete the first message
client.receiveMessage().subscribe( message -> { client.deleteMessage(message.getMessageId(), message.getPopReceipt()).subscribe( response -> { }, deleteError -> System.err.print(deleteError.toString()), () -> System.out.println("Complete deleting the message!") ); }, error -> System.err.print(error.toString()), () -> System.out.println("Complete receiving the message!") );
For more information, see the Azure Docs.
messageId
- Id of the message to deletedpopReceipt
- Unique identifier that must match for the message to be deletedQueueStorageException
- If the queue or messageId don't exist or the popReceipt doesn't match on the
message.public Mono<com.azure.core.http.rest.Response<Void>> deleteMessageWithResponse(String messageId, String popReceipt)
Code Samples
Delete the first message
client.receiveMessage().subscribe( message -> { client.deleteMessageWithResponse(message.getMessageId(), message.getPopReceipt()) .subscribe( response -> System.out.println("Complete deleting the message with status code: " + response.getStatusCode()), deleteError -> System.err.print(deleteError.toString()), () -> System.out.println("Complete deleting the message!") ); }, error -> System.err.print(error.toString()), () -> System.out.println("Complete receiving the message!") );
For more information, see the Azure Docs.
messageId
- Id of the message to deletedpopReceipt
- Unique identifier that must match for the message to be deletedQueueStorageException
- If the queue or messageId don't exist or the popReceipt doesn't match on the
message.public String getQueueName()
Code Samples
String queueName = client.getQueueName(); System.out.println("The name of the queue is " + queueName);
public String getAccountName()
public String generateSas(QueueServiceSasSignatureValues queueServiceSasSignatureValues)
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
queueServiceSasSignatureValues
- QueueServiceSasSignatureValues
String
representing the SAS query parameters.public String generateSas(QueueServiceSasSignatureValues queueServiceSasSignatureValues, com.azure.core.util.Context context)
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"));
queueServiceSasSignatureValues
- QueueServiceSasSignatureValues
context
- Additional context that is passed through the code when generating a SAS.String
representing the SAS query parameters.Copyright © 2021 Microsoft Corporation. All rights reserved.