google-app-engine - 如何防止非提升实例消费消息
问题描述
每当我在 Google App Engine 中部署新版本并将流量传输到它时,以前的版本仍会使用来自我们的消息代理的消息。如何确保只有新部署的版本才会使用消息而不关闭旧实例?
解决方案
如果您在迁移流量时部署了多个版本,您可以使用Modules API检查当前版本并将其与默认版本进行比较。
您的支票可能如下所示:
from google.appengine.api import modules
def default_version = modules.get_default_version()
def instance_version = modules.get_current_version_name()
# you may additionally want to query the instances of the default version
# to make sure they've booted up and are actively serving traffic.
if default_version != instance_version:
# don't consume messages
在上面的代码示例中,默认版本是流量正在迁移到的版本,当前版本是实例的版本。
另请参阅使用模块 API。
注意:服务以前称为模块,API 方法仍然反映该命名。
推荐阅读
- javascript - 在控制台中记录复选框的值
- firebase - Firebase 规则允许教师和学生读取/写入数据
- powershell - PowerShell 枚举集合时出错
- ios - SceneKit:已从 STL 导入的导出网格导致垃圾
- elasticsearch - 将 Elasticsearch 2.4 升级到 5.6 后获取快照
- python - 我在测试用例中调用它时没有定义名称,我正在使用 pytest
- javascript - 检索覆盖的计算样式链
- java - 提取 zip 并转换为每个文件的 base 64
- salesforce - FullCalendar V4 上的储物柜服务和工具提示
- angular - 如何使用键盘使 Angular CDK 拖放可访问