3

また、そのサーバーに直接リクエストを送信する方法はありますか?

4

5 に答える 5

7

実際には方法があり、アプリケーションのすべてのインスタンスに新しいデータをプッシュするのに役立ちます。

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

ref: GAE モジュール ドキュメント

于 2013-01-14T21:58:14.557 に答える
1

いいえ、ありません。

通常、誰かがこのようなことを尋ねると、AppEngineで間違った方向に向かっています。フロントエンドサーバーは常に起動およびシャットダウンします。特定のインスタンスに依存するものを設計している場合、それは間違っています。どのインスタンスにヒットしても機能するリクエストを設計する必要があります。

必要な場合は、バックエンドの使用を検討してください。

于 2012-07-31T02:22:17.020 に答える
1

何の目的で?

異なるバージョンをテストしたい場合は、トラフィック分割https://developers.google.com/appengine/docs/adminconsole/trafficsplittingを使用できます

ただし、これは異なるバージョンであり、特定のインスタンスではありません。

于 2012-07-31T01:57:10.277 に答える
0

Python と日時スタンプを使用してインスタンスを識別します。このインスタンス ID は appengine_config.py によって設定されます。他のインスタンスにシグナルを送るために、memcache でフラグを使用します。これは__init__、webapp2 リクエスト ハンドラーによってチェックされます。別の方法が見つからなかったため、他のインスタンスへのシグナルを使用して jinja 環境をフラッシュし、動的な Python コードをリロードします。

memcache フラグの例を次に示します。インスタンス 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 に答える
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 に答える