翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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
インポート
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);
「」で完全なサンプル
メッセージを取得する
キューに現在含まれているメッセージを取得するには、 SqsClient の receiveMessage
メソッドを呼び出します。このメソッドは、キュー URL ReceiveMessageRequest
インポート
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;
「」で完全なサンプル
受信後にメッセージを削除する
メッセージを受信し、その内容を処理した後、メッセージの受信ハンドルとキュー URL を SqsClient's
deleteMessage
インポート
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); }
「」で完全なサンプル
詳細情報
-
Amazon Simple Queue Service デベロッパーガイドの Amazon Simple Queue Service キューの仕組み
-
SendMessage Amazon Simple Queue Service API リファレンスの
-
SendMessageBatch Amazon Simple Queue Service API リファレンスの
-
ReceiveMessage Amazon Simple Queue Service API リファレンスの
-
DeleteMessage Amazon Simple Queue Service API リファレンスの