python - Google CloudFunctions:ContextVar 与 Global Var
问题描述
Google Cloud Functions 中的 ContextVar 和 Global Var 之间有区别吗?
我注意到,当 Google 尝试重用 GCF 实例时,一些全局变量类从一个 GCF 调用重用到另一个 GCF 调用,而不是在每个 GCF 调用开始时初始化。我需要每个全局 var 类对于每个 GCF 调用都是唯一的。
每个 GCF 调用的 ContextVars 是唯一的吗?
目前我将这些全局变量分配给 None 并在之后重新初始化以确保每个类的新初始化
解决方案
我假设你有你的云函数,一个 HTTP 云函数。(与后台功能相同,仅用于我的示例)。
现在,测试您的 HTTP 云函数:创建一个网络服务器(例如使用烧瓶,因为您似乎在 Python 中)。
启动您的网络服务器。
那是为了上下文。现在我的解释:
- 创建 Cloud Functions 时,平台会在您创建它时运行 Web 服务器(烧瓶)。
- 当一个请求进来时,网络服务器得到它并调用“函数”来处理它(即云函数)。
因此,Cloud Functions 上的 GlobalVars 和 ContextVars 的生命周期与本地网络服务器中的生命周期完全相同。没有神奇/奇怪的东西。
更有用的,你可以在本地测试这个,更快更简单!
推荐阅读
- reactjs - 如何使用 React js 和 REST API 从数据库中删除数据
- netsuite - 如何使用 Mulesoft dataweave 中的 netsuite 连接器在 nullfieldlist 中传递多个值
- ios - 如何绘制环绕圆形按钮的圆形矩形?
- javascript - 如何(使用 React JS web)和 Firestore,你能找出 chatRoom(在 Firestore 数据库上)何时收到新消息吗?
- mysql - 未知数据库“数据库”
- excel - 如何找到同一列中每个重复项的最后一行索引?
- amazon-web-services - AWS-Console:对嵌套字段进行 DynamoDB 扫描
- javascript - 如何仅在父div而不是子div中触发功能
- php - HTML 按钮不向数据库发送 SQL 查询
- sql - 当行输出不是 6 个字符长时,什么也不显示