首页 > 解决方案 > 由于活动实例,GAE 应用程序未显示更新的数据/见解

问题描述

我有一个 GAE 应用程序从 GCS 存储桶读取数据(每天更新!)。

问题:此应用程序在启动之前已初始化的实例(当前活动实例)时显示对旧数据​​的见解

问题:如何确保在 GCS 存储桶中更新数据时,GAE 应用程序会读取更新后的数据?也许通过初始化应用程序的新实例或任何其他替代方案

应用信息:
运行时:标准 python 3.7,
缩放:自动

标签: python-3.xdatabasegoogle-app-engineinstanceautoscaling

解决方案


因此,本质上,您需要一种方法来在每次 GCS 更新结束时有意杀死您的 GAE 应用程序的所有现有实例。我认为没有办法做到这一点,至少不是以编程方式(您可以从此 GCP 控制台页面https://console.cloud.google.com/appengine/instances手动删除实例)。

你可以通过重新部署你的应用程序来做到这一点。CI/CD 服务能够以编程方式部署到 GAE,因此您可以让一些日常 cron 作业触发部署。

但是,正确的做法是使用某种持久性存储,例如 Google Datastore,而不是实例上的全局变量。然后,您可以每天运行和下载 GCS 文件并更新数据存储中的数据的 cron 作业。然后,您的应用程序的所有实例都将从数据存储区而不是全局变量中读取并获取更新。


推荐阅读