首页 > 解决方案 > Cloud Tasks + Cloud Functions - 重复执行

问题描述

我正在同时使用 Google Cloud Tasks 和 Cloud Functions 来并行执行许多任务。

它似乎在大多数情况下运行良好,但我见过几次意外行为:有时,Cloud Tasks 认为该函数失败并重试它,即使该函数尚未完成运行,最终成功. 发生这种情况时,我会在队列的日志中看到这一点(队列是使用 创建的--log-sampling-ratio=1.0):

所以云函数最终成功执行了 2 次。

如文档中所述,我知道 Cloud Tasks 不能保证始终严格执行一次。但是,我仍然想确认是否会出现这种特殊情况以及是否有任何方法可以防止这种情况发生。

标签: google-cloud-platformgoogle-cloud-functionsgoogle-cloud-tasks

解决方案


在您的任务中定义:

tasksClient.createTask({ parent: queuePath, task, resource: { retryConfig: { maxAttempts: 1 } } })

我在这里找到它:文档


推荐阅读