Mar*_*ark 9 batch-processing amazon-sqs amazon-web-services aws-lambda aws-sqs-fifo
假设:
当 Lambda 返回带有失败消息 ID 的部分批处理响应时,例如:
{
"batchItemFailures": [
{
"itemIdentifier": "d4c7c57f-c12c-4639-abe3-3a0d37690790"
}
]
}
Run Code Online (Sandbox Code Playgroud)
成功处理的消息将从队列中删除。但是,批次中失败的消息仍在等待可见性超时,而不是立即对消费者可见。失败消息的行为是否正确?或者让它们立即可见的唯一方法是调用 SQS API 并将可见性超时更改为 0?
小智 2
虽然我不能谈论 FIFO SQS 队列,但我可以说我在标准 SQS 队列中看到了这种行为。
我假设在 batchItemFailures 中返回的项目将立即设置为可见,但它们确实似乎保持在飞行中,直到 VisibilityTimeout 过期。
我的解决方案是在返回 batchItemFailures 之前通过 SQS API 手动将消息可见性超时更改为 0。
| 归档时间: |
|
| 查看次数: |
1694 次 |
| 最近记录: |