Amazon Simple Queue Service
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

教程:将带有计时器的消息发送到 Amazon SQS 队列

消息定时器可让您为添加到队列的消息指定初始不可见时段。例如,如果您发送一条带有 45 秒定时器的消息,则该消息在进入队列后的前 45 秒内对用户不可见。默认值为 0 秒。 在本教程中,您将学习如何将带有计时器的消息发送到现有队列。有关更多信息,请参阅Amazon SQS 消息定时器

注意

FIFO 队列不支持单个消息上的计时器。

有关将消息发送到标准和 FIFO 队列的详细说明,请参阅向队列发送消息

AWS 管理控制台

  1. 登录 Amazon SQS 控制台

  2. 从队列列表中选择一个队列。

  3. 队列操作中,选择发送消息

    将显示 Send a Message to QueueName 对话框。

  4. 要将消息发送至标准队列,请键入消息正文,选择将该消息的交付延迟并键入一个值,例如 60 秒。

  5. 选择 Send Message

    您的消息将会发送,并显示 Send a Message to QueueName 对话框,其中将显示已发送消息的属性。

  6. 选择 Close

AWS SDK for Java

在您开始处理示例代码之前,请指定 AWS 凭证。有关更多信息,请参阅 AWS SDK for Java Developer Guide 中的设置用于开发的 AWS 凭证和区域

将带有计时器的消息发送至队列

  1. 复制标准队列示例程序

  2. main 方法签名更改为以下内容:

    public static void main(String[] args) throws InterruptedException
  3. 使用以下内容替换发送消息的代码部分:

    // Send a message with a 5-second timer. System.out.println("Sending a message with a 5-second timer to MyQueue.\n"); SendMessageRequest request = new SendMessageRequest(myQueueUrl, "This is my message text."); request.setDelaySeconds(5); sqs.sendMessage(request); // Wait for 10 seconds. System.out.println("Waiting for 10 seconds."); Thread.sleep(10000L);
  4. 编译并运行示例。

    消息已发送到队列。此响应包含下列项目:

    • Amazon SQS 分配给该消息的消息 ID

    • 消息正文的 MD5 摘要,用于确认 Amazon SQS 正确接收了消息 (有关更多信息,请参阅 RFC1321)。

    • Amazon SQS 分配给您的请求的请求 ID