【问题标题】:Any way to disable GCP pub/sub retries?有什么方法可以禁用 GCP 发布/订阅重试?
【发布时间】:2021-05-23 17:52:49
【问题描述】:

我目前有一个推送到 http 端点的 pub/sub 推送订阅。然后此端点触发我的云功能。我遇到了一个问题,已经发送到我的云功能的相同事件正在被 pub/sub 订阅重新发送。我将订阅的确认截止日期增加到 3 分钟,但在执行云功能大约一分钟后,它将重新发送已处理的相同事件。这导致多次调用我的云功能和其他问题。我还没有看到任何禁用发布/订阅重试的方法,但想知道是否有任何关于此问题的根本原因或任何解决方法的建议? 当前设置:

  • 云函数超时限制:120 秒
  • pub/sub 订阅确认截止时间:180 秒
  • 重试 5 次后出现死信

【问题讨论】:

  • 尝试从您的端点返回一个非错误响应,例如(对于 Node)res.json({ received: true }) 给调用者。
  • 与 pubsub 无关,这些通常是定时/计划任务

标签: google-cloud-platform google-cloud-functions google-cloud-pubsub


【解决方案1】:

您需要考虑幂等性并标记任何最近的重试,以防止它们再次触发。这可能是存储在数据库中的时间戳,并根据时间和您包含的任何元数据进行过滤。另一个重要的事情是返回一个成功的结果。

Doug 在视频中介绍了这个概念,虽然它没有引用 pubsub,但它仍然有效:https://www.youtube.com/watch?v=Pwsy8XR7HNE

【讨论】:

    猜你喜欢
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    相关资源
    最近更新 更多