将消息从 SQS 队列强制到其死信队列?

问题描述 投票:0回答:1

尝试为我的 AWS SQS 队列及其关联的死信队列编写一些测试。我想在测试中以某种方式强制将消息从队列发送到其 DLQ,然后从 dlq 中读取消息以查看消息是否存在。

从DLQ读取没有问题。但是有谁知道一种快速简单的方法可以通过编程强制 sqs 队列向其关联的 DLQ 发送消息?

amazon-web-services amazon-sqs dead-letter
1个回答
9
投票

死信队列 (DLQ) 只是一个 SQS 队列,因此您可以像发送任何其他队列一样向其发送消息。

DLQ 在您创建普通队列时配置,您需要传递将用作 DLQ 的队列的 ARN。

配置 DLQ 时,您可以设置

maxReceiveCount
(在控制台上称为 Maximum receive)。这是消息在移动到 DLQ 之前传递到源队列的次数。当消息的
ReceiveCount
超过队列的
maxReceiveCount
时,Amazon SQS 会将消息移至 DLQ。

enter image description here

如果您想测试向DLQ发送消息的过程,您需要在队列消息处理的测试中强制出错。这将向 DLQ 发送一条消息,这是了解错误是否正确路由到队列的最佳方式。

向 DLQ 发送消息的过程可以通过以下方式完成:

  • 如果您发现某些错误并且当时不想处理或删除该消息,则可以明确地向 DLQ 发送消息。

  • 如果您读取消息的次数多于

    maxReceiveCount
    并且不处理该消息(从队列中读取并删除),AWS SQS 服务将了解您对该消息存在问题,并将自动将其发送到为您提供 DLQ(例如,如果
    maxReceiveCount
    等于 1 并且您阅读该消息两次而不删除它)。

要了解有关 DLQ 的更多信息,请查看此处:Amazon SQS 死信队列

© www.soinside.com 2019 - 2024. All rights reserved.