google-cloud-platform - Google Cloud Tasks 执行后会自行删除吗?
问题描述
在我的应用程序中,我实现了 Google Tasks,以便我的用户可以在他们的ToDo
项目到期时收到通知。
我的主要问题是,当我的 Cloud Task 触发时,我注意到它仍然位于我的 Cloud Task Console 中。那么,一旦他们被解雇,他们会删除自己吗?对于我的应用程序,我希望云任务在完成后自行删除。
我在文档中注意到这一行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)
}
})
解决方案
如果任务被调度或分派,则可以删除它。如果根据本文档成功完成或永久失败,则无法删除任务。
- 如果应用程序的请求处理程序返回 [200 - 299] 范围内的 HTTP 响应代码,则任务尝试成功。
- 如果应用程序的处理程序返回非 2xx 响应代码或 Cloud Tasks 在截止日期之前未收到响应,则任务尝试失败:
对于 HTTP 任务,10 分钟。截止日期必须在 [15 秒,30 分钟] 区间内
对于 App Engine 任务,0 表示请求具有默认截止日期。默认期限取决于服务的扩展类型:自动扩展的标准应用程序为 10 分钟,手动和基本扩展的标准应用程序为 24 小时,弹性应用程序为 60 分钟。
该任务将作为 HTTP 请求推送给工作人员。如果工作人员或重定向工作人员通过返回成功的 HTTP 响应代码 ([200 - 299]) 来确认任务,则该任务将根据本文档从队列中删除。如果返回任何其他 HTTP 响应码或没有收到响应,将按照以下方式重试该任务:
推荐阅读
- javascript - 用多列围绕跨多列的特色图像包装帖子内容
- python - Pyspark 或 spark sql 解决方案来剥离字符串列中第三个单词之后的所有内容
- java - 路由器上的 Java 到 SSH 命令
- node.js - 环境变量未加载到 Nodejs 中的 process.env
- jquery - 使用 jquery 将多个 .txt 文件合并为一个 html 表单选择下拉列表
- swift - 检查 viewcontroller 是否从其父 VC 中呈现另一个
- javascript - 在 JavaScript 中获取数组的深度
- python - 查找由每个数组中的一行组成的所有组合
- node.js - 在 reactjs 中使用 axios 显示来自 mongodb 的收集数据
- camera - 沿 y 轴旋转的相机移动