SQS 消息延迟未按预期工作 [英] SQS Message Delay Not Working As Expected

查看:46
本文介绍了SQS 消息延迟未按预期工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试延迟发送单个 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆