QueueAsyncClient Class
- java.
lang. Object - com.
azure. storage. queue. QueueAsyncClient
- com.
public final class QueueAsyncClient
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 Asynchronous Queue Client
QueueAsyncClient client = new QueueClientBuilder()
.connectionString("connectionstring")
.endpoint("endpoint")
.buildAsyncClient();
View QueueClientBuilder for additional ways to construct the client.
Method Summary
Methods inherited from java.lang.Object
Method Details
clearMessages
public Mono
Deletes all messages in the queue.
Code Samples
Clear the messages
client.clearMessages().subscribe(
response -> System.out.println("Clearing messages completed."));
For more information, see the Azure Docs.
Returns:
clearMessagesWithResponse
public Mono
Deletes all messages in the queue.
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.
Returns:
create
public Mono
Creates a new queue.
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.
Returns:
createIfNotExists
public Mono
Creates a new queue.
Code Samples
Create a queue
client.createIfNotExists().subscribe(created -> {
if (created) {
System.out.println("Successfully created.");
} else {
System.out.println("Already exists.");
}
});
For more information, see the Azure Docs.
Returns:
true
indicates a new queue was created,
false
indicates the specified queue already existed.createIfNotExistsWithResponse
public Mono
Creates a new queue.
Code Samples
Create a queue with metadata "queue:metadataMap"
client.createIfNotExistsWithResponse(Collections.singletonMap("queue", "metadataMap"))
.subscribe(response -> {
if (response.getStatusCode() == 409) {
System.out.println("Already exists.");
} else {
System.out.println("successfully created.");
}
});
For more information, see the Azure Docs.
Parameters:
Returns:
createWithResponse
public Mono
Creates a new queue.
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.
Parameters:
Returns:
delete
public Mono
Permanently deletes the queue.
Code Samples
Delete a queue
client.delete().doOnSuccess(
response -> System.out.println("Deleting the queue completed.")
);
For more information, see the Azure Docs.
Returns:
deleteIfExists
public Mono
Permanently deletes the queue if it exists.
Code Samples
Delete a queue
client.deleteIfExists().subscribe(deleted -> {
if (deleted) {
System.out.println("Successfully deleted.");
} else {
System.out.println("Does not exist.");
}
});
For more information, see the Azure Docs.
Returns:
true
indicates that the queue was successfully
deleted, false
indicates that the queue did not exist.deleteIfExistsWithResponse
public Mono
Permanently deletes the queue if it exists.
Code Samples
Delete a queue
client.deleteIfExistsWithResponse().subscribe(response -> {
if (response.getStatusCode() == 404) {
System.out.println("Does not exist.");
} else {
System.out.println("successfully deleted.");
}
});
For more information, see the Azure Docs.
Returns:
deleteMessage
public Mono
Deletes the specified message in the queue
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.
Parameters:
Returns:
deleteMessageWithResponse
public Mono
Deletes the specified message in the queue
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.
Parameters:
Returns:
deleteWithResponse
public Mono
Permanently deletes the queue.
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.
Returns:
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:
Returns:
String
representing the SAS query parameters.generateSas
public String 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"));
Parameters:
Returns:
String
representing the SAS query parameters.generateSas
public String generateSas(QueueServiceSasSignatureValues queueServiceSasSignatureValues, Consumer
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.
Parameters:
Returns:
String
representing the SAS query parameters.getAccessPolicy
public PagedFlux
Retrieves stored access policies specified on the queue.
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.
Returns:
getAccountName
public String getAccountName()
Get associated account name.
Returns:
getHttpPipeline
public HttpPipeline getHttpPipeline()
Gets the HttpPipeline powering this client.
Returns:
getMessageEncoding
public QueueMessageEncoding getMessageEncoding()
Gets the message encoding the client is using.
Returns:
getProperties
public Mono
Retrieves metadata and approximate message count of the queue.
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.
Returns:
getPropertiesWithResponse
public Mono
Retrieves metadata and approximate message count of the queue.
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.
Returns:
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:
getQueueUrl
public String getQueueUrl()
Get the URL of the storage queue.
Returns:
getServiceVersion
public QueueServiceVersion getServiceVersion()
Gets the service version the client is using.
Returns:
peekMessage
public Mono
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
client.peekMessage().subscribe(
peekMessages -> System.out.println("The message got from peek operation: "
+ peekMessages.getBody().toString()),
error -> System.err.print(error.toString()),
() -> System.out.println("Complete peeking the message!")
);
For more information, see the Azure Docs.
Returns:
peekMessages
public PagedFlux
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).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.
Parameters:
Returns:
maxMessages
PeekedMessageItem from the queue. Each PeekedMessage
contains metadata about the message.receiveMessage
public Mono
Retrieves the first message in the queue and hides it from other operations for 30 seconds.
Code Samples
Dequeue a message
client.receiveMessage().subscribe(
message -> System.out.println("The message got from getMessages operation: "
+ message.getBody().toString()),
error -> System.err.print(error.toString()),
() -> System.out.println("Complete receiving the message!")
);
For more information, see the Azure Docs.
Returns:
receiveMessages
public PagedFlux
Retrieves up to the maximum number of messages from the queue and hides them from other operations for 30 seconds.
Code Samples
Dequeue up to 5 messages
client.receiveMessages(5).subscribe(
message -> System.out.println("The message got from getMessages operation: "
+ message.getBody().toString()),
error -> System.err.print(error.toString()),
() -> System.out.println("Complete receiving the message!")
);
For more information, see the Azure Docs.
Parameters:
Returns:
maxMessages
QueueMessageItem from the queue.
Each DequeuedMessage contains getMessageId() and
getPopReceipt() used to interact with the message and
other metadata about the message.receiveMessages
public PagedFlux
Retrieves up to the maximum number of messages from the queue and hides them from other operations for the timeout period.
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.getBody().toString()),
error -> System.err.print(error.toString()),
() -> System.out.println("Complete receiving the message!")
);
For more information, see the Azure Docs.
Parameters:
Returns:
maxMessages
QueueMessageItem from the queue. Each DeqeuedMessage
contains getMessageId() and
getPopReceipt()
used to interact with the message and other metadata about the message.sendMessage
public Mono
Enqueues a message that has a time-to-live of 7 days and is instantly visible.
Code Samples
Enqueue a message of "Hello, Azure"
client.sendMessage(BinaryData.fromString("Hello, Azure")).subscribe(
response -> {
},
error -> System.err.print(error.toString()),
() -> System.out.println("Complete enqueuing the message!")
);
For more information, see the Azure Docs.
Parameters:
Returns:
sendMessage
public Mono
Enqueues a message that has a time-to-live of 7 days and is instantly visible.
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.
Parameters:
Returns:
sendMessageWithResponse
public Mono
Enqueues 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
client.sendMessageWithResponse(BinaryData.fromString("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(BinaryData.fromString("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.
Parameters:
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.
Returns:
sendMessageWithResponse
public Mono
Enqueues 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
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.
Parameters:
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.
Returns:
setAccessPolicy
public Mono
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))
.subscribe(response -> System.out.println("Setting access policies completed."));
For more information, see the Azure Docs.
Parameters:
Returns:
setAccessPolicyWithResponse
public Mono
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.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.
Parameters:
Returns:
setMetadata
public Mono
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"))
.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.
Parameters:
Returns:
setMetadataWithResponse
public Mono
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"))
.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.
Parameters:
Returns:
updateMessage
public Mono
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
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.
Parameters:
Returns:
updateMessageWithResponse
public Mono
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
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.
Parameters:
Returns: