强制将消息从 SQS 队列发送到其死信队列?
Force a message from SQS Queue to its dead letter queue?
正在尝试为我的 AWS SQS 队列及其关联的死信队列编写一些测试。我想在我的测试中以某种方式强制消息从队列到它的 DLQ,然后从 dlq 读取消息以查看消息是否存在。
从DLQ读取没有问题。但是有谁知道我可以通过编程方式强制 sqs 队列向其关联的 DLQ 发送消息的快速简便的方法吗?
死信队列只是一个 SQS 队列,因此您可以像发送任何其他队列一样向它发送消息。
DLQ 在您创建普通队列时配置,您需要传递将用作 DQL 的队列的 arn。
当您配置 DLQ 时,您设置了 maxReceiveCount
(控制台上的最大接收数),即消息在之前被传递到源队列的次数被移动到 dead-letter 队列。当消息的 ReceiveCount
超过队列的 maxReceiveCount
时,Amazon SQS 会将消息移动到 dead-letter 队列。
如果要测试将消息发送到 DLQ 的过程,您需要在测试中强制队列消息处理错误以将消息发送到 DLQ 队列,这将是了解是否存在的最佳方式错误正确进入队列。
向DLQ发送消息的过程可以通过以下方式完成:
如果发现错误并且当时不想处理或删除消息,则明确向 DLQ 发送消息。
如果您阅读消息的次数多于 maxReceiveCount
并且不处理消息(从队列中读取和删除),AWS SQS 服务将了解您在该消息并将自动发送给您的 DLQ。 (例如 maxReceiveCount 等于 1 并且您阅读了消息并且没有删除 2 次)
要了解有关 DLQ 的更多信息,请查看此处:Amazon SQS dead-letter queues。
正在尝试为我的 AWS SQS 队列及其关联的死信队列编写一些测试。我想在我的测试中以某种方式强制消息从队列到它的 DLQ,然后从 dlq 读取消息以查看消息是否存在。
从DLQ读取没有问题。但是有谁知道我可以通过编程方式强制 sqs 队列向其关联的 DLQ 发送消息的快速简便的方法吗?
死信队列只是一个 SQS 队列,因此您可以像发送任何其他队列一样向它发送消息。
DLQ 在您创建普通队列时配置,您需要传递将用作 DQL 的队列的 arn。
当您配置 DLQ 时,您设置了 maxReceiveCount
(控制台上的最大接收数),即消息在之前被传递到源队列的次数被移动到 dead-letter 队列。当消息的 ReceiveCount
超过队列的 maxReceiveCount
时,Amazon SQS 会将消息移动到 dead-letter 队列。
如果要测试将消息发送到 DLQ 的过程,您需要在测试中强制队列消息处理错误以将消息发送到 DLQ 队列,这将是了解是否存在的最佳方式错误正确进入队列。
向DLQ发送消息的过程可以通过以下方式完成:
如果发现错误并且当时不想处理或删除消息,则明确向 DLQ 发送消息。
如果您阅读消息的次数多于
maxReceiveCount
并且不处理消息(从队列中读取和删除),AWS SQS 服务将了解您在该消息并将自动发送给您的 DLQ。 (例如 maxReceiveCount 等于 1 并且您阅读了消息并且没有删除 2 次)
要了解有关 DLQ 的更多信息,请查看此处:Amazon SQS dead-letter queues。