0

たとえば、
Firstインスタンスはカウント変数(初期値は0)を維持し、10個のリクエストを処理した後、カウントは10に増加します。その後、リクエストがなくなるため、AppEngineは最初のインスタンスをシャットダウンします。
その後、着信要求を処理するために2番目のインスタンスが作成されます。
私の質問は、カウント変数が10になるか、初期値(0)にリセットされるかどうかです。
リセットされた場合、それを回避する方法はありますか?(データストアを手動で使用する以外に)?
ありがとうございました

4

1 に答える 1

1

リクエストごとにインクリメントされるグローバル/モジュールレベルの変数について話していると思います。答えは、各インスタンスが独自のプロセスで実行されるため、後続のインスタンスはゼロから開始するだけでなく、複数のインスタンスを同時に実行できるため、各インスタンスには独自の独立したカウンターがあります。

これを行う適切な方法は、memcacheを使用してキーを保存することです。これは、すべてのインスタンスで単一の値になります。memcache.incr('counter')値をアトミックにインクリメントするために行うことができます。

データを永続化することが重要な場合は、シャードカウンターの保存を検討できます。

于 2012-07-09T08:38:10.527 に答える