gpt4 book ai didi

amazon-web-services - 在发送到 SNS 之前,我可以使用 Amazon SQS 作为延迟队列吗?

转载 作者:行者123 更新时间:2023-12-04 08:06:23 24 4
gpt4 key购买 nike

我的系统在 Amazon 自动缩放组上运行,其中一项功能允许用户对用户进行消息传递,我有以下用例需要解决。

  • 在我的应用程序中,用户之间发送了一条新消息。
  • 通过电子邮件通知用户的消息被放入队列,延迟 60 秒。此延迟允许实时聊天客户端(faye/angularjs)有时间查看消息并将其标记为已查看。
  • 在接收到消息的延迟之后,检查“已读”状态,如果客户端尚未阅读,则发送电子邮件。

  • 最初我打算在每个应用程序服务器上使用 cronjob 轮询消息队列,但是我发现使用 SNS 调用某种电子邮件发送端点(可能在 Lambda 中)会更有效。

    但是,我看不到让 SNS 投票 SQS 的任何方式,有人可以建议如何做到这一点吗?本质上,我希望 SNS 有延迟,这样我就不会在带有电子邮件警报的“实时”聊天中向某人发送垃圾邮件。

    谢谢

    最佳答案

    不幸的是,这还不是开箱即用的。缺少的部分是 Amazon SNS 队列在消息到达/可见性上生成 Amazon SQS 通知,无论是通过推送(类似于 Amazon S3 notifications ,还是通过类似于 Amazon Kinesis subscriptions 的轮询(参见 The Pull/Push Event Models 的更多信息)将 AWS Lambda 函数连接到相应的 SQS delay queue 事件,例如:

  • Lambda with SQS

  • 话虽如此,您可以通过几种方式解决此限制,例如:
  • 按计划触发您的 Lambda 函数(例如每分钟一次),并从那里轮询您的 SQS 延迟队列
  • 预定的 Lambda 函数依次是 eagerly awaited missing Lambda feature,但它更容易解决,无论是通过您的 cron 作业,还是 Eric Hammond 的 Unreliable Town Clock (UTC) 例如

  • 顺便说一句,AWS Lambda 团队在最近一个月提交了许多/最相似的功能请求,所以我希望他们在一年中仍然提供 SQS 事件处理和预定的 Lambda 函数。

    关于amazon-web-services - 在发送到 SNS 之前,我可以使用 Amazon SQS 作为延迟队列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32346926/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com