首页 > 解决方案 > 如何防止非提升实例消费消息

问题描述

每当我在 Google App Engine 中部署新版本并将流量传输到它时,以前的版本仍会使用来自我们的消息代理的消息。如何确保只有新部署的版本才会使用消息而不关闭旧实例?

标签: google-app-enginegoogle-cloud-platform

解决方案


如果您在迁移流量时部署了多个版本,您可以使用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 方法仍然反映该命名。


推荐阅读