是否有响应代码将 Google Cloud Task 标记为永久失败以使其不再重试?

Is there a response code to mark a Google Cloud Task as permanently failed so it won't retry?

我有一个 Firebase HTTPS 函数,它发送定时消息并由 Google Cloud Tasks 触发。

根据 Cloud Tasks 文档,任何超出 200 范围的响应代码都被视为失败并会触发重试。

此功能需要扩展到每天数百万条消息,因此我们需要避免重试永久失败的消息(该人选择退出等)。

Note: This is especially important in this example because each task needs to look up the latest information before processing, adding 2-10 Firestore reads to each attempt. We can't send this info in the payload because it might change between the time the message was queued and it is processed.

使用云任务API删除任务很容易,但我想知道是否有任何HTTP响应代码(或header)可以将这些任务标记为永久失败(400例如错误的请求)而不是重试它们。

只有 HTTP 代码 2XX(从 200 到 299)被视为任务完成并停止重试。

所有其他 return 代码被视为失败并意味着重试。

注意:429(App Engine 任务队列为 503)限制队列的重试(以防止服务拥塞)。


如果您想通过 Cloud Task 停止重试机制,return一个 2XX 代码。这是唯一的方法。

您可以想象 return 299 并在此特定代码上插入错误报告警报以跟踪它们并在这些情况下收到警报