【问题标题】:Will a Cloud Function finish if HTTP request is cancelled?如果 HTTP 请求被取消,云函数会完成吗?
【发布时间】:2020-04-03 12:18:15
【问题描述】:

我有一个通过 HTTP 请求触发的 Python 3.7 云函数。

函数执行最多可能需要几秒钟 (2-5)。

在某些情况下,HTTP 请求是使用网站前端的 Javascript 发送的。

我的问题是,即使浏览器窗口(使用 JS 触发 HTTP 请求)关闭或用户导航到另一个页面,云函数是否会正常完成它的执行。该函数返回“ok”,但在这种情况下,它没有返回它的目的地。

【问题讨论】:

  • 是的,函数完成,因为它是由第一页触发的,并将代码返回到不存在的目的地。但问题是为什么前端触发了云端功能,不等待结果?
  • 一个用例是分析。收集有关点击和其他用户操作的数据。例如:JS 触发 HTTP 请求,触发 Cloud Function,触发 Pub/Sub 主题,触发另一个 Cloud Function,将数据写入数据库。
  • 好的,类似:ehi 云函数,将此信息写入此数据库。你的第一个云函数可以返回一个简单的 200,如果有错误日志记录到 stackdriver。我认为你不能考虑云功能响应。
  • 是的,我真正需要知道的是,即使在 HTTP 请求完成或返回某些内容之前关闭浏览器窗口,云功能也会正常完成。

标签: google-cloud-platform google-cloud-functions


【解决方案1】:

根据发送请求后客户端发生的情况,函数代码不会做任何不同的事情。事实上,在请求发送后,甚至无法尝试取消函数的执行。

从函数的角度来看,关闭连接不会影响结果。如果客户端在收到响应之前关闭连接,它将不会收到函数生成的任何响应,因此您无法确定客户端是否对函数返回的任何信息进行了操作。

【讨论】:

    猜你喜欢
    • 2021-04-11
    • 2017-11-09
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 2019-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多