Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python GAE向所有活动实例发送请求_Python_Google App Engine - Fatal编程技术网

Python GAE向所有活动实例发送请求

Python GAE向所有活动实例发送请求,python,google-app-engine,Python,Google App Engine,是否有任何方法可以向Google App Engine中模块/服务的所有活动实例发送请求 如果我可以得到所有活动实例ID的列表,我可以为每个实例发出类似的请求 在非常不寻常的情况下,我需要它来更改一些内存的全局变量(这样可以节省对数据存储或memcache的请求和时间)。如果它们是频繁的更改,我显然更喜欢使用memcache…您可以使用的REST方法获取特定服务版本的实例列表: 列出版本的实例 HTTP请求 GET https://appengine.googleapis.com/v1/{par

是否有任何方法可以向Google App Engine中模块/服务的所有活动实例发送请求

如果我可以得到所有活动实例ID的列表,我可以为每个实例发出类似的请求


在非常不寻常的情况下,我需要它来更改一些内存的全局变量(这样可以节省对数据存储或memcache的请求和时间)。如果它们是频繁的更改,我显然更喜欢使用memcache…

您可以使用的REST方法获取特定服务版本的实例列表:

列出版本的实例

HTTP请求

GET
https://appengine.googleapis.com/v1/{parent=apps/*/services/*/versions/*}/instances

URL使用语法

另请参见相应的pydoc页面

如前所述,通过实例列表,您可以根据需要使用GAE向每个特定实例发送请求

重要注意事项与问题中的这一假设相关:

如果我能得到所有活动实例ID的列表,我可以 请求式 对于 每一个实例

发件人:

注意:配置为自动缩放或基本缩放的服务不支持以实例为目标


虽然Dan已经给出了答案,但我不确定这真的是实现您所需目标的最佳方法。您认为可以进一步详细说明吗?您可以在实例的RAM内存、MEMCACHE或DATASTORE(或其他NSQL)中设置一个标志。获取该标志值的时间可能为0.001、2或50毫秒(示例),具体取决于所选存储。如果我的应用程序的所有请求都读取了该标志,那么如果您从实例的RAM内存中读取该标志(支持10 M请求/天并进行编号),则可以节省金钱和时间。当实例启动时,您从数据存储中读取值,并将其作为全局变量放入RAM中。但是,如果标志改变,我正在寻找一种方法,向所有实例发送一条消息,以更新其RAM中标志的值。在我的previos示例中,该标志每月只能改变一次,或者在某些Google服务失败的情况下(如GAE taskqueues),但在发生这种情况时,我们需要中间传播。当前的解决方案是刷新memcache并再次上载应用程序的最后一个版本,这样所有实例都将初始化并使用新的标志值重新启动。。。我正在寻找一种更优雅的方式来做这件事。我需要它用于自动缩放实例。此解决方案不适用于自动缩放实例。我获得了de实例ID,但instance.service.version.app.appspot.com请求不起作用。文档中指出“在配置为自动伸缩或基本伸缩的服务中,不支持以实例为目标。”,但我认为这是一个由原始帖子设置的上下文问题,该帖子声明
我可以提出如下请求https://instance-dot-version-dot-service-dot-app-id.appspot.com 对于每个实例。
:)我尝试了所有的符号变体,但都不起作用。我的实例是自动伸缩的,不适用于文档中所说的。我希望他们将来能改变这一点。有没有找到自动缩放的解决方案?据我所知没有(但我最近没有检查)。