LrSqsClient.changeMessageVisibilityBatch
Sends the request of visibility change for all messages in the designated container.
public static LrSqsChangeVisibilityBatchRequestStatus changeMessageVisibilityBatch()
Return values
This function returns a value of type LrSqsChangeVisibilityBatchRequestStatus. For details, see LrSqsChangeVisibilityBatchRequestStatus.
General information
This method fails if the container does not contain any messages or receipt handles.
The batch can hold any number of messages. Upon calling the changeMessageVisibilityBatch() function, the batch is split into smaller collections, of at most 10 messages each, and each such collection is sent in a separate request.
Example
public void changeVisibility() {
LrSqsClient.initClient(region, standardQueueUrl);
LrSqsClient.initMessageBatch();
LrSqsClient.addMessageToBatch("m1");
LrSqsClient.addMessageToBatch("m2");
LrSqsClient.addMessageToBatch("m3");
LrSqsClient.addMessageToBatch("m4");
LrSqsClient.sendMessageBatch();
LrSqsMessage message1 = LrSqsClient.receiveMessage();
if (message1 != null){
LrSqsClient.changeMessageVisibility(message1.receiptHandle(), 20);
}
List <LrSqsMessage> receivedMessages = LrSqsClient.receiveMessages(3, 20);
LrSqsClient.initChangeMessageVisibilityBatch();
int visibilityTimeout = 10;
for (LrSqsMessage m : receivedMessages) {
//LrSqsClient.addMessageToChangeVisibilityBatch(m, visibilityTimeout);
LrSqsClient.addReceiptHandleToChangeVisibilityBatch(m.receiptHandle(), visibilityTimeout);
visibilityTimeout += 2;
}
LrSqsClient.changeMessageVisibilityBatch();
LrSqsClient.closeClient();
}