Amazon Simple Queue Service メッセージを送信、受信、および削除する - AWS SDK for Java 2.x

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Simple Queue Service メッセージを送信、受信、および削除する

メッセージは、分散コンポーネントによって送受信できるデータの一部です。メッセージは、常に SQS キューを使用して提供されます。

次の例で使用されている sqsClient 変数は、次のスニペットから作成できます。

SqsClient sqsClient = SqsClient.create();

静的create()メソッドSqsClientを使用して を作成すると、SDK はデフォルトのリージョンプロバイダーチェーン を使用してリージョンを設定し、デフォルトの認証情報プロバイダーチェーン を使用して認証情報を設定します。

メッセージの送信

SqsClient クライアントsendMessageメソッドを呼び出して Amazon Simple Queue Serviceキューに 1 つのメッセージを追加します。キューの URL、メッセージ本文、およびオプションの遅延値 (秒単位) を含む SendMessageRequest オブジェクトを指定します。

インポート

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;

Code

sqsClient.sendMessage(SendMessageRequest.builder() .queueUrl(queueUrl) .messageBody("Hello world!") .delaySeconds(10) .build()); sqsClient.sendMessage(sendMsgRequest);

リクエストで複数のメッセージを送信する

SqsClient の sendMessageBatch メソッドを使用して 1 つのリクエストで複数のメッセージを送信します。このメソッドは、キュー URL と送信SendMessageBatchRequestするメッセージのリストを含む を受け取ります。(各メッセージは ですSendMessageBatchRequestEntry。) また、メッセージの遅延値を設定して、特定のメッセージの送信を遅延させることもできます。

インポート

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;

Code

SendMessageBatchRequest sendMessageBatchRequest = SendMessageBatchRequest.builder() .queueUrl(queueUrl) .entries(SendMessageBatchRequestEntry.builder().id("id1").messageBody("Hello from msg 1").build(), SendMessageBatchRequestEntry.builder().id("id2").messageBody("msg 2").delaySeconds(10).build()) .build(); sqsClient.sendMessageBatch(sendMessageBatchRequest);

「」で完全なサンプルを参照してください GitHub。

メッセージを取得する

キューに現在含まれているメッセージを取得するには、 SqsClient の receiveMessage メソッドを呼び出します。このメソッドは、キュー URL ReceiveMessageRequest を含む を受け取ります。また、返るメッセージの最大数を指定することもできます。メッセージは、Message オブジェクトのリストとして返されます。

インポート

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;

Code

try { ReceiveMessageRequest receiveMessageRequest = ReceiveMessageRequest.builder() .queueUrl(queueUrl) .maxNumberOfMessages(5) .build(); List<Message> messages = sqsClient.receiveMessage(receiveMessageRequest).messages(); return messages; } catch (SqsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return null;

「」で完全なサンプルを参照してください GitHub。

受信後にメッセージを削除する

メッセージを受信し、その内容を処理した後、メッセージの受信ハンドルとキュー URL を SqsClient'sdeleteMessageメソッドに送信して、キューからメッセージを削除します。

インポート

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;

Code

try { for (Message message : messages) { DeleteMessageRequest deleteMessageRequest = DeleteMessageRequest.builder() .queueUrl(queueUrl) .receiptHandle(message.receiptHandle()) .build(); sqsClient.deleteMessage(deleteMessageRequest); }

「」で完全なサンプルを参照してください GitHub。

詳細情報