【问题标题】:Google CloudFunctions: ContextVar vs Global VarGoogle CloudFunctions:ContextVar 与 Global Var
【发布时间】:2021-02-25 19:24:03
【问题描述】:
Google Cloud Functions 中的 ContextVar 和 Global Var 有区别吗?
我注意到,当 Google 尝试重用 GCF 实例时,一些全局变量类会从一个 GCF 调用重用到另一个 GCF 调用,而不是在每个 GCF 调用开始时初始化。我需要每个全局 var 类对于每个 GCF 调用都是唯一的。
每个 GCF 调用的 ContextVar 是否唯一?
目前我将这些全局变量分配给 None 并在之后重新初始化以确保每个类的新初始化
【问题讨论】:
标签:
python
google-cloud-functions
python-3.7
python-contextvars
【解决方案1】:
我假设你有你的云函数,一个 HTTP 云函数。 (与后台功能相同,仅用于我的示例)。
现在,测试您的 HTTP 云函数:创建一个网络服务器(例如使用烧瓶,因为您似乎使用 Python)。
启动您的网络服务器。
这是为了上下文。现在我的解释:
- 创建 Cloud Functions 后,平台会在您创建它时运行一个网络服务器(flask)。
- 当一个请求进来时,网络服务器获取它并调用“函数”来处理它(即云函数)。
因此,Cloud Functions 上的 GlobalVar 和 ContextVar 的生命周期与本地网络服务器中的生命周期完全相同。没有魔法/奇怪的东西。
比较好用,你可以在本地测试这个,更快更简单!