如何在 Firebase 中实现顺序任务队列而不出现并行处理问题?

问题描述 投票:0回答:1

我是 Firebase 新手,正在尝试设置任务队列。我的目标是从数据存储队列中读取状态为“待处理”的请求,将 HTTP 请求发送到外部第三方服务器,然后将请求状态更新为“就绪”。外部服务器的响应时间约为 5-10 秒,并且不支持并行调用,因此我必须确保一次仅处理一个请求。

我尝试了以下方法:

触发函数:我尝试在将新记录添加到队列存储库时触发云函数。我预计这会起作用,但它导致了并行处理,而外部服务器不支持并行处理。

计划作业:我考虑的另一个选择是运行计划作业。然而,Firebase 的最短调度时间是一分钟,这对于我的用例来说太长了,因为每个请求需要 5-10 秒来处理。

云任务:我也研究了云任务,但我不知道它如何适用,因为我正在处理外部第三方服务。

我希望找到一种方法来一次处理每个请求,同时遵守时间要求。

firebase google-cloud-functions task-queue
1个回答
0
投票

您可以使用 Cloud Tasks 设置一个“限制”为 1 个并发调度的队列。您提供用于处理第三方服务的代码,作为 Cloud Tasks 将为队列中的每个请求调用的HTTP 端点

© www.soinside.com 2019 - 2024. All rights reserved.