【问题标题】:AWS SQS Retry Multiple timesAWS SQS 重试多次
【发布时间】:2017-05-08 18:01:06
【问题描述】:

我正在处理要求我在成功获取一些数据后调用特定端点的要求。我们使用发布到 SQS 队列的 SNS 主题来实现这一点,该队列又调用端点。 SNS -> SQS -> 我的端点(处理 Q 消息) -> 调用外部端点获取数据。

现在,我们发现订单处理后无法立即获取数据,现在的要求是每 30 秒尝试 5 次。

我们有什么办法可以做到这一点吗?

现在,我已经做到了,处理来自队列的消息的我的端点总是返回一个错误,以便重试消息。

我将可见性超时设置为 30 秒,这样消息每 30 秒重试 5 次。

有没有更好的方法来实现我想要的现有设置? 请帮忙。

【问题讨论】:

  • 如果 SQS 本身需要重试,我认为无论您做什么都是唯一的方法。否则修改 SNS 的来源以仅在“数据可用”时发送通知。
  • 谢谢,但问题是,在调用外部端点之前,我不知道数据是否可用
  • 有没有更好的方法来实现我想要的? 这个解决方案并没有什么问题。这是可见性超时的可行用途。我有一个应用程序在重试之间等待 5 分钟,这正是我处理它的方式。鉴于 SQS 的设计具有内置限制,因此每个队列“仅”允许拥有 120,000 条已至少收到一次的消息,并且它们的可见性超时计时器随时运行......它似乎他们将其设计为以这种方式使用。

标签: amazon-web-services amazon-sqs amazon-sns delayed-execution retrypolicy


【解决方案1】:

为什么在所述数据可用时不发布消息,然后仅将该消息用作触发器?这样,SQS 消息就不会第一次失败了。

如果由于某种原因这是不可能的(实际上不应该是这样,但 YNK), 那么是的,就像你一样抛出一个错误,它会重试。它应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 2015-07-23
    • 2018-12-14
    • 2018-09-10
    • 1970-01-01
    相关资源
    最近更新 更多