首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从云函数调用其他云Firebase函数

如何从云函数调用其他云Firebase函数
EN

Stack Overflow用户
提问于 2017-08-16 12:34:43
回答 1查看 3.6K关注 0票数 8

假设我有一个由cron作业调用的云Firebase函数,它在每次调用30+任务时都会生成它。

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

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

  1. Pubsub留言。这将是惊人的,但它似乎是您只能侦听来自云函数中的pubsub消息,而不是创建一个。求助于外部解决方案,比如拥有GAE实例,对我来说不是一种选择。
  2. 从第一个调用工作者http触发的Firebase函数。我认为这是行不通的,因为我需要等待所有被调用的工作函数在它们完成和send之后的响应,而我的原始函数将超时。
  3. 将任务附加到实时数据库列表中,然后由每次数据库更改触发一个辅助函数。之后,工作人员必须从队列中删除任务。这可能是可行的,但它觉得有很多移动的部分,为一个简单的问题。例如,如果员工抛出怎么办?需要另一个“清洁”数据库的官员等等。

想到的另一个解决方案是火源队列,但它的自述文件明确指出:

“可能会继续有特定的用例用于Firebase队列,但是如果您要为Firebase寻找一个通用的、可伸缩的排队系统,那么构建基于Google功能的Firebase很可能是理想的路线。”

它没有得到官方的支持,他们实际上是说我们应该使用函数(这就是我想要做的)。我有点紧张,不想使用,因为它可能会被废弃的图书馆明天(如果还没有),并希望避免沿着这条路线。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-16 13:45:23

从云函数发送Pub/Sub消息

云函数在一个相当标准的Node.js环境中运行。考虑到Node/NPM生态系统的宽度,您可以在云功能中做的事情相当多。

似乎您只能在云函数中侦听pubsub消息,而不能创建一个

您可以使用Pub/Sub的常规Node.js模块从云函数中向Pub/Sub主题发布新消息。见示例的云Pub/Sub文档

通过数据库写入触发云函数的新操作

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

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

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45713690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档