Google Cloud Tasks 在执行后会自行删除吗?

Do Google Cloud Tasks Delete themselves once they have executed?

在我的应用程序中,我实施了 Google 任务,这样我的用户就可以在他们的 ToDo 项目到期时收到通知。

我的主要问题是,当我的 Cloud Task 启动时,我注意到它仍然位于我的 Cloud Task 控制台中。那么,一旦他们被解雇,他们会删除自己吗?对于我的应用程序,我希望云任务在完成后自行删除。

我在文档中注意到这一行 you can also fine-tune the configuration for the task, like scheduling a time in the future when it should be executed or limiting the number of times you want the task to be retried if it fails. 事实是,我的任务没有失败,但我看到 retries 的数量为 4。

firebase cloud functions

exports.firestoreTtlCallback = functions.https.onRequest(async (req, res) => {
    try {
        const payload = req.body;
        let entry = await (await admin.firestore().doc(payload.docPath).get()).data();
        let tokens = await (await admin.firestore().doc(`/users/${payload.uid}`).get()).get('tokens')
        await admin.messaging().sendMulticast({
            tokens,
            notification: {
                title: "App",
                body: entry['text']
            }
        }).then((response) => {
            log('Successfully sent message:')
            log(response)
        }).catch((error) => {
            log('Error in sending Message')
            log(error)
        })
        const taskClient = new CloudTasksClient();
        let { expirationTask } = admin.firestore().doc(payload.docPath).get()
        await taskClient.deleteTask({ name: expirationTask })
        await admin.firestore().doc(payload.docPath).update({ expirationTask: admin.firestore.FieldValue.delete() })
        res.status(200)
    } catch (err) {
        log(err)
        res.status(500).send(err)
    }
})

可以删除已安排或派发的任务。根据此 documentation.

,如果任务已成功完成或永久失败,则无法删除该任务
  • 如果应用的请求处理程序 returns,则任务尝试成功 [200 - 299].
  • 范围内的 HTTP 响应代码
  • 如果应用程序的处理程序 returns 非 2xx,则任务尝试失败 响应代码或 Cloud Tasks 在 截止日期是:
  1. 对于 HTTP 任务,10 分钟。截止日期必须在区间 [15 秒,30 分钟]

  2. 对于 App Engine 任务,0 表示请求具有默认值 最后期限。默认截止日期取决于 scaling type 服务:具有自动缩放功能的标准应用程序需要 10 分钟,24 分钟 具有手动和基本缩放功能的标准应用程序的小时数,以及 60 弹性应用的分钟数。

  • 失败的任务将根据重试重试 配置。请检查您的 queue.yaml 文件以进行重试 配置集,如果您想根据您的 选择遵循 this.

任务将作为 HTTP 请求推送给工作人员。 如果工作人员或重定向的工作人员通过返回成功的 HTTP 响应代码 ([200 - 299]) 确认任务,任务将根据此 documentation.[=46 从队列中删除=] 如果返回任何其他 HTTP 响应代码或未收到响应,将根据以下内容重试任务:

  • 用户指定的限制:重试配置,rate limits,以及 queue's state.
  • 系统节流:为防止 worker 过载,Cloud 任务可能会暂时降低队列的有效率。 用户指定的设置不会更改。