gpt4 book ai didi

firebase - 如何从 Cloud Function 调用其他 Cloud Firebase Functions

转载 作者:行者123 更新时间:2023-12-04 18:01:47 26 4
gpt4 key购买 nike

假设我有一个 Cloud Firebase Function - 由 cron 作业调用 - 每次调用时都会产生 30 多个任务。

这些任务非常慢(平均每个 5 - 6 秒),我无法直接在原始文件中处理它们,因为它会超时。

因此,解决方案将调用另一个“worker”函数,每个任务一次,以独立完成任务并将结果写入数据库。到目前为止,我能想到三种策略:

  • 发布订阅消息。那将是惊人的,但似乎 you can only listen on pubsub messages from within a Cloud Function ,而不是创建一个。诉诸外部解决方案,例如拥有 GAE 实例,对我来说不是一个选择。
  • 从第一个调用 worker http-triggered Firebase Cloud Function。我认为那是行不通的,因为我需要等待所有调用的工作函数的响应,在它们完成和 send 之后。 ,我原来的函数会超时。
  • 将任务附加到实时数据库列表中,然后每个数据库更改都会触发一个工作函数。工作人员之后必须从队列中删除任务。这可能会奏效,但感觉对于一个简单的问题有很多事件部件。例如,如果 worker 扔东西怎么办?需要另一个“清理”数据库的 cron 等。

  • 想到的另一个解决方案是 firebase-queue ,但其自述文件明确指出:

    "There may continue to be specific use-cases for firebase-queue, however if you're looking for a general purpose, scalable queueing system for Firebase then it is likely that building on top of Google Cloud Functions for Firebase is the ideal route"



    它没有得到官方支持,他们实际上是在说我们应该使用 Functions 代替(这是我正在尝试做的)。我对在 prod 中使用明天可能会被放弃的库(如果还没有的话)有点紧张,并且希望避免走这条路。

    最佳答案

    从 Cloud Functions 发送 Pub/Sub 消息

    Cloud Functions 在相当标准的 Node.js 环境中运行。鉴于 Node/NPM 生态系统的广度,您可以在 Cloud Functions 中做的事情非常广泛。

    it seems that you can only listen on pubsub messages from within a Cloud Function, not create one



    您可以使用 Pub/Sub 的常规 Node.js 模块从 Cloud Functions 中将新消息发布到 Pub/Sub 主题。见 Cloud Pub/Sub documentation for an example .

    通过数据库写入从 Cloud Functions 触发新操作

    这也是一个相当普遍的模式。我通常让我的子进程/工作人员在他们将结果写回数据库的同时自行清理。这在我的简单场景中效果很好,但你的里程当然可能会有所不同。

    如果您遇到具体的清理问题,请发布重现问题的代码,我们可以看看如何使其更健壮。

    关于firebase - 如何从 Cloud Function 调用其他 Cloud Firebase Functions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45713690/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com