Şu satırı dahil ederiz
import software.amazon.awssdk.services.sqs.SqsClient;import software.amazon.awssdk.services.sqs.model.CreateQueueRequest;import software.amazon.awssdk.services.sqs.model.ReceiveMessageRequest;import software.amazon.awssdk.services.sqs.model.ReceiveMessageResponse;
builder metodu
Örnek
Elimizde şöyle bir kod olsun
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain;
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
protected AwsCredentialsProvider getAwsCredentialsProvider() {
return AwsCredentialsProviderChain.builder()
.addCredentialsProvider(DefaultCredentialsProvider.create())
.build();
}Şöyle yaparız
protected SqsClient sqsClient() throws URISyntaxException {
return SqsClient.builder()
.region(Region.US_EAST_1)
.endpointOverride(new URI("http://localhost:4566"))
.credentialsProvider(getAwsCredentialsProvider())
.build();
}createQueue metodu
Örnek
Şöyle yaparız
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.CreateQueueRequest;
protected String createQueue(String queueName) throws URISyntaxException {
var createQueueRequest = CreateQueueRequest.builder()
.queueName(queueName)
.build();
return sqsClient().createQueue(createQueueRequest).queueUrl();
}
getQueueUrl metodu
Örnek
Şöyle yaparız
GetQueueUrlResponse getQueueUrlResponse = sqsClient. getQueueUrl(GetQueueUrlRequest.builder().queueName(QUEUE_NAME).build()); String originalUrl = getQueueUrlResponse.queueUrl();
receiveMessage metodu
Örnek
Şöyle yaparız
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.ReceiveMessageRequest;
import software.amazon.awssdk.services.sqs.model.ReceiveMessageResponse;
protected ReceiveMessageResponse receiveMessage(String queueUrl)
throws URISyntaxException {
var sqsClient = sqsClient();
var receiveMessageRequest = ReceiveMessageRequest.builder()
.queueUrl(queueUrl)
.build();
return sqsClient.receiveMessage(receiveMessageRequest);
}sendMessageBatch metodu
Örnek
Şöyle yaparız. Burada mesajlar 10'luk gruplar halinde gönderiliyor
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.SendMessageBatchRequest;
import software.amazon.awssdk.services.sqs.model.SendMessageBatchRequestEntry;
List<SendMessageBatchRequestEntry> messageList =
int sublistSize = 10;
String queueUrl = ...;
// Iterate the list with sublists of size 10
for (int i = 0; i < messageList.size(); i += sublistSize) {
int endIndex = Math.min(i + sublistSize, messageList.size());
List<SendMessageBatchRequestEntry> sublist = messageList.subList(i, endIndex);
// Process the current sublist
SendMessageBatchRequest sendMessageBatchRequest = SendMessageBatchRequest.builder()
.queueUrl(queueUrl)
.entries(sublist)
.build();
sqsClient.sendMessageBatch(sendMessageBatchRequest);
}
Hiç yorum yok:
Yorum Gönder