以编程方式列出并向动态App Engine实例发送请求

时间:2017-03-13 21:52:28

标签: google-app-engine

我想将特定的HTTP请求(或以其他方式传达消息)发送到当前为特定App Engine应用程序运行的每个(动态/自动调整的)实例。

我的目标是触发每个实例丢弃一些本地缓存的数据(因为我刚刚修改了底层数据并希望它们重新加载它)。

一种可能的解决方案是在Memcache中存储一个值,并让实例在每次处理请求时检查它是否应刷新其缓存。但这会增加每个请求的延迟。

另一种可能的解决方案是以某种方式停止所有正在运行的实例。没有固定的开销,但在重新启动实例时会产生一些影响。

更不理想的解决方案是重新部署应用程序代码,以便停止所有实例。由于部署需要一些时间,现在这会增加额外的延迟。

1 个答案:

答案 0 :(得分:0)

对于给定版本,您可以使用管理API list instances,但我建议您可能希望在每个App Engine上使用类似PubSub API的create a subscription之类的内容实例。由于每个实例都有自己的订阅,因此所有实例都将接收发送到受监视队列的任何消息。

您可以在启动时创建订阅(the /_ah/start endpoint可能有用),然后在关机时删除它(使用/_ah/stop endpoint)。