发送、接收和删除Amazon SQS消息 - AWS SDK for Java1.x

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

发送、接收和删除Amazon SQS消息

本主题描述了如何发送、接收和删除 Amazon SQS 消息。始终使用 SQS 队列发送消息。

发送消息

将单个消息添加到Amazon SQS通过致电 AmazonSQS 客户端来排队sendMessage方法。提供SendMessageRequest包含队列的对象URL、消息正文和可选延迟值(以秒为单位)。

导入

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.SendMessageRequest;

代码

SendMessageRequest send_msg_request = new SendMessageRequest() .withQueueUrl(queueUrl) .withMessageBody("hello world") .withDelaySeconds(5); sqs.sendMessage(send_msg_request);

请参阅 GitHub 上的完整示例

一次性发送多条消息

您可以在一个请求中发送多条消息。要发送多条消息,请使用 AmazonSQS 客户端sendMessageBatch方法,它需要SendMessageBatchRequest包含队列 URL 和消息列表(每个消息)SendMessageBatchRequestEntry) 要发送。您也可以为每条消息设置一个可选延迟值。

导入

import com.amazonaws.services.sqs.model.SendMessageBatchRequest; import com.amazonaws.services.sqs.model.SendMessageBatchRequestEntry;

代码

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;

代码

List<Message> messages = sqs.receiveMessage(queueUrl).getMessages();

收到后删除消息

在收到消息并处理其内容后,可通过将消息的接收句柄和队列 URL 发送到 AmazonSQS 客户端来从队列中删除消息。deleteMessage方法。

代码

for (Message m : messages) { sqs.deleteMessage(queueUrl, m.getReceiptHandle()); }

请参阅 GitHub 上的完整示例

更多信息