如何解决是否有响应代码将 Google Cloud 任务标记为永久失败,以便它不会重试?
我有一个 Firebase HTTPS 函数,可以发送定时消息并由 Google Cloud Tasks 触发。
根据 Cloud Tasks 文档,任何超出 200 范围的响应代码都被视为失败并会触发重试。
此功能需要扩展到每天数百万条消息,因此我们需要避免重试永久失败(此人选择退出等)的消息。
注意:这在本例中尤为重要,因为每个任务在处理之前都需要查找最新信息,每次尝试添加 2-10 次 Firestore 读取。我们无法在有效负载中发送此信息,因为它可能会在消息排队和处理之间发生变化。
使用云任务 API 删除任务很容易,但我想知道是否有任何 HTTP 响应代码(或标头)可以将这些任务标记为永久失败(例如 400 错误请求)并且不重试它们.
解决方法
只有 HTTP 代码 2XX(从 200 到 299)被视为任务完成并停止重试。
所有其他返回码都被视为失败并意味着重试。
注意:429(对于 App Engine 任务队列为 503)限制队列上的重试(以防止服务拥塞)。
如果要停止 Cloud Task 的重试机制,请返回 2XX 代码。这是唯一的方法。
您可以想象返回 299 并在此特定代码上插入错误报告警报以跟踪它们并在这些情况下收到警报
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。