firebase - Firebase Function 多类型批处理
问题描述
当前是否有任何内置方法或解决方法可用于对不同类型的数据库/服务工作进行批处理?
例如,我需要做多件事,要么让它们全部完成,要么如果其中一个失败,则回滚所有工作。多类型我的意思是:
- 增量计数器
firestore
- 创建
Google Cloud Tasks Queue
项目 - 将新记录写入
firestore
集合
如果其中任何一个失败,我需要将它们全部回滚。我之前使用过 Firestore 批量写入,但这不支持我在执行 Google Cloud Tasks Queue 工作时所需的内容。
解决方案
您可以在 Firestore 中使用事务以原子方式将多个操作组合在一起,但无法保证跨多个不同系统的原子性。您需要做的是:
- 在事务中,递增计数器,写入新记录,并在某处捕获 Cloud Task 项目正在等待调度以及当前时间。
- 安排 Cloud Task 项目。
- 将待处理的项目标记为完成。
然后,您将拥有一个计划函数,该函数会定期查找本应已计划但未计划的旧任务。对于其中的每一个,清理 Firestore 数据或在您认为合适的时候重试。
推荐阅读
- python - 自定义常规比例(pyplot)
- shell - 用于验证具有不同字段的 3 个文件的 awk 程序
- firebase - Firestore:Flutter pugin,尝试按字段对数据进行排序时出错
- javascript - 如何断开一系列标记之间的折线并在传单中开始一个新的?
- graphql - 赛普拉斯中具有多个存根的模拟 Graphql 服务器
- javascript - Nodejs在模块之间传递日志实例
- c# - 从 C# docker 访问 kubernetes 服务
- ios - SwiftUI - 如何在我的视图中调用函数?
- ios - 当应用程序被拉到前台时,为什么我在 React Native 中的自定义字体恢复为系统字体?
- log4j2 - 当我们有多个包时,log4j2.properties 中的 logger.rolling 名称应该是什么?