繁体   English   中英

仅在前一个函数在 Google Cloud Functions 中执行后才开始执行函数

[英]Start function execution only after previous one has executed in Google Cloud Functions

我在谷歌云功能上运行节点应用程序。 这由 Github 上的 webhook 触发。

一旦 webhook 被触发,我的 Google Cloud Function 就会开始它的功能:

Function execution started

通常如果没有任何反应,该函数将完成执行: Function execution took 13 ms, finished with status code: 200

但是如果 webhook 再次被触发,那么我的谷歌云函数将放弃正在运行的函数并说Function execution started

有没有办法让我排队我的功能。 有一个函数完成执行然后开始下一个?

您的流程中需要一个“队列”或代理机制。 在 GCP 中,这可以通过使用 2 个函数和一个 pubsub 主题(和订阅)来实现

函数 1(GitHub webhook 监听器):

此函数将侦听 GitHub webhook 调用并将发布/订阅消息发布到主题。

功能 2(事件处理程序):此功能将在“推送”配置中侦听该主题的发布/订阅订阅。 至关重要的是,在此函数的设置中,最大实例参数设置为 1。 这将确保一次只有一个函数实例处于活动状态,因此您的事件会一个接一个地得到处理,等待一条消息完成处理,然后再继续处理另一条消息。 在此功能中同样重要的是,仔细考虑何时确认发布/订阅消息以允许代理发送下一条消息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM