我想为我的AWS SQS队列及其关联的死信队列编写一些测试。我希望在我的测试中以某种方式强制队列中的消息传递到其DLQ,然后从DLQ中读取以查看消息是否存在。
从DLQ中读取没有问题。但是有没有人知道一种快速简便的方法,可以通过编程方式强制sqs队列将消息发送到其关联的DLQ?
我想为我的AWS SQS队列及其关联的死信队列编写一些测试。我希望在我的测试中以某种方式强制队列中的消息传递到其DLQ,然后从DLQ中读取以查看消息是否存在。
从DLQ中读取没有问题。但是有没有人知道一种快速简便的方法,可以通过编程方式强制sqs队列将消息发送到其关联的DLQ?
如果想测试将消息发送到 DLQ 的过程,您需要在测试中强制发生队列消息处理错误以将消息发送到 DLQ 队列,这将是了解错误是否正确进入队列的最佳方式。
将消息发送到 DLQ 的过程可以通过以下方式完成:
您可以显式地将消息发送到 DLQ,如果您发现某个错误并且不希望在该时间处理或删除该消息。
如果您读取消息的次数超过 maxReceiveCount
并且不处理该消息(从队列中读取并删除),则 AWS SQS 服务将理解您在处理该消息时遇到问题,并自动将其发送到 DLQ 中。 (例如,maxReceiveCount 等于 1,您读取消息两次但未删除)
要了解有关 DLQ 的更多信息,请查看此处:Amazon SQS dead-letter queues。