3

有没有办法直接向该服务器发送请求?

4

5 回答 5

7

实际上,有一种方法可以将新数据推送到应用程序的所有实例。

from google.appengine.api import modules
instance_id = modules.get_current_instance_id()

参考:GAE 模块文档

于 2013-01-14T21:58:14.557 回答
1

出于什么目的?

如果要测试不同的版本,可以使用流量拆分https://developers.google.com/appengine/docs/adminconsole/trafficsplitting

那是不同的版本,而不是特定的实例。

于 2012-07-31T01:57:10.277 回答
1

不,没有。

通常当有人问这样的问题时,他们在应用引擎上的方向是错误的。前端服务器一直在启动和关闭。如果您正在设计任何依赖于特定实例的东西,那么您做错了。无论遇到什么实例,您都需要设计能够正常工作的请求。

如果必须这样做,请考虑使用后端。

于 2012-07-31T02:22:17.020 回答
0

With the advent of Modules, you can get the current instance id in a more elegant way:

ModulesServiceFactory.getModulesService().getCurrentInstanceId()

Also, according to this doc, you can route requests specifically to a particular instance by using a URL like

http://instance.version.module.app-id.appspot.com

Note that you need to replace the dot with -dot- to suppress the SSL certificate warning your web client may be complaining about:

http://instance-dot-version-dot-module-dot-app-id.appspot.com

于 2014-04-16T21:49:08.957 回答
0

我使用 Python 和日期时间戳来识别实例。此实例 ID 由 appengine_config.py 设置。为了向其他实例发出信号,我在 memcache 中使用了一个标志,由__init__我的 webapp2 请求处理程序检查。我使用其他实例的信号来刷新 jinja 环境并重新加载动态 python 代码,因为我找不到其他方法。

这是内存缓存标志的示例;发出重新加载所有动态模块的信号,这些模块已由实例 id 设置:'2012-12-26 16:39:50.072000'

{ u'_all': { u'dyn_reloads_dt': datetime.datetime(2012, 12, 26, 16, 39, 59, 120000),
             u'setter_instance': '2012-12-26 16:39:50.072000'}} 

我主演了来自 Ibrahim Arief 的功能请求

于 2012-12-26T18:06:43.927 回答