Aru*_*han 8 amazon-sqs amazon-web-services
从SQS的文档中,我们可以配置一条消息以使其对消费者隐藏的最大延迟时间是15分钟- -http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-delay-queues.html
假设我需要隐藏一天的邮件,模式是什么?例如。我想模仿做某事的每日cron。
谢谢
use*_*066 12
最简单的方法如下:
SQS.push_to_queue({perform_message_at : "Thursday November 2022"},delay: 15 mins)
Run Code Online (Sandbox Code Playgroud)
在你的工人里面
message = SQS.poll_messages
if message.perform_message_at > Time.now
SQS.push_to_queue({perform_message_at : "Thursday November
2022"},delay:15 mins)
else
process_message(message)
end
Run Code Online (Sandbox Code Playgroud)
基本上将消息以最大延迟推回到队列中,并且仅在其处理时间小于当前时间时才对其进行处理。
HTH。
小智 7
可见性超时最长可达 12 小时。我认为你可以在处理消息的地方一起破解一些东西,但不要删除它,下次处理它的时间是 12 小时。因此,一个包含一条消息且可见性超时为 12 小时的队列。这会给你一个 12 小时的 cron。
小智 7
Cloudwatch 可能是一种更好的方法。您可以将 createEvent API 与计时器一起使用,并让它触发 lambda 函数或对接下来发生的任何内容的 API 调用。
另一种方法是在 AWS 步骤函数中使用“等待”实用程序。
https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-wait-state.html
在任何情况下,除非您非常确定您永远不需要超过 15 分钟的时间,否则添加延迟的 SQS 后门似乎很棘手。
| 归档时间: |
|
| 查看次数: |
8527 次 |
| 最近记录: |