Amazon SQS メッセージの送信、受信、削除 - AWS SDK for Java 1.x

AWS SDK for Java 1.x は 2024 年 7 月 31 日にメンテナンスモードに移行し、2025 年 12 月 31 end-of-support日に に到達します。新しい機能、可用性の向上、およびセキュリティアップデートを引き続き受け取るAWS SDK for Java 2.xには、 に移行することをお勧めします。

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

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 で完全な例をご覧ください。

詳細