AWS SDK for Java 1.x は 2024 年 7 月 31 日にメンテナンスモードに入り、2025 年 12 月 31 end-of-support
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon SQS メッセージの送信、受信、削除
このトピックでは、Amazon SQS メッセージを送信、受信、削除する方法について説明します。メッセージは、常に SQS キューを使用して提供されます。
メッセージの送信
Amazon SQS キューに 1 つのメッセージ追加するには、AmazonSQS クライアントの sendMessage
メソッドを呼び出します。キューの URL、メッセージ本文、およびオプションの遅延値 (秒単位) が含まれる SendMessageRequest オブジェクトを指定します。
インポート
import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.SendMessageRequest;
Code
SendMessageRequest send_msg_request = new SendMessageRequest() .withQueueUrl(queueUrl) .withMessageBody("hello world") .withDelaySeconds(5); sqs.sendMessage(send_msg_request);
GitHub
一度に複数のメッセージを送信する
複数のメッセージを 1 回のリクエストで送信できます。複数のメッセージを送信するには、AmazonSQS クライアントの sendMessageBatch
メソッドを呼び出して、キュー URL と送信するメッセージのリスト (各メッセージが SendMessageBatchRequestEntry) を含む SendMessageBatchRequest を渡します。メッセージごとにオプションの遅延値を設定することもできます。
インポート
import com.amazonaws.services.sqs.model.SendMessageBatchRequest; import com.amazonaws.services.sqs.model.SendMessageBatchRequestEntry;
Code
SendMessageBatchRequest send_batch_request = new SendMessageBatchRequest() .withQueueUrl(queueUrl) .withEntries( new SendMessageBatchRequestEntry( "msg_1", "Hello from message 1"), new SendMessageBatchRequestEntry( "msg_2", "Hello from message 2") .withDelaySeconds(10)); sqs.sendMessageBatch(send_batch_request);
GitHub
メッセージを受信する
キューに現在含まれているメッセージを取得するには、AmazonSQS クライアントの receiveMessage
メソッドを呼び出して、キューの URL を渡します。メッセージは、Message オブジェクトのリストとして返されます。
インポート
import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.AmazonSQSException; import com.amazonaws.services.sqs.model.SendMessageBatchRequest;
Code
List<Message> messages = sqs.receiveMessage(queueUrl).getMessages();
受信後にメッセージを削除する
メッセージを受信し、その内容を処理した後で、メッセージをキューから削除するには、メッセージの受信ハンドルとキュー URL を AmazonSQS クライアントの deleteMessage
メソッドに送信します。
Code
for (Message m : messages) { sqs.deleteMessage(queueUrl, m.getReceiptHandle()); }
GitHub
詳細
-
Amazon SQS デベロッパーガイドの Amazon SQS キューの仕組み
-
Amazon SQS API リファレンスの SendMessage
-
Amazon SQS API リファレンスの SendMessageBatch
-
Amazon SQS API リファレンスの ReceiveMessage
-
Amazon SQS API リファレンスの DeleteMessage