SQS 消息延迟未按预期工作 [英] SQS Message Delay Not Working As Expected
问题描述
我正在尝试延迟发送单个 SQS 消息.使用 https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-send-message-with-timer.html 来测试消息延迟,我没有看到任何延迟.
I'm trying send individual SQS messages with a delay. Using https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-send-message-with-timer.html to test message delays, I'm not seeing any delay.
如果我在队列上设置延迟,则该延迟会得到尊重,但不适用于单个消息.我正在执行以下操作(全部来自 AWS 控制台):
If I set a delay on the queue, that delay is honoured, however not for individual messages. I'm doing the following (all from the AWS console):
- 打开 SQS 控制台并右键单击我的测试队列 - 验证队列的延迟值为 0.
- 右键单击测试队列,然后单击发送消息"
- 添加消息正文
- 将此邮件的延迟传递时间"设置为 30 秒
- 点击发送消息.
- 收到一条确认消息,指出您的消息已发送,将在 30 秒内准备好接收."
但是,当我检查 CloudWatch 时,我可以看到消息几乎立即送达.是我误解了什么,还是我在配置中遗漏了什么?
However when I check CloudWatch I can see that the message was delivered almost immediately. I'm I misunderstanding something, or have I missed something in the configuration?
推荐答案
我的测试表明,发送到 Lambda 函数用作触发器的 SQS 队列的消息将立即触发 Lambda 函数,即使提供了延迟设置.
My testing shows that messages sent to an SQS queue which a Lambda function is using as a trigger will immediately trigger the Lambda function, even if a Delay setting is provided.
请参阅:amazon sqs - 如何从 lambda 触发器将消息返回给 SQS - 堆栈溢出
这篇关于SQS 消息延迟未按预期工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!