1

アプリが最初に起動したときに何か(初期化)を行うクラスがあります。この初期化コードは静的ブロックに存在するため、通常、クラスが初めて読み込まれるときに1回だけ実行する必要があります。

サーバーにリクエストが来ていないときにインスタンスが動的であるために問題が発生すると、アプリがアンロードされます。次にリクエストが来ると、アプリが動的に読み込まれ、初期化コードが再度実行されます。これは私が望んでいないことです。

この問題は常駐インスタンスを使用することで解決できることはわかっていますが、常駐インスタンスは無料の割り当てでは利用できないと思います。間違っている場合は修正してください。

この問題を解決する方法はありますか?

計算結果をdbに保存することは1つのオプションですが、そのデータがすぐに必要なため、実行できませんか?memchaceはどうですか?それは機能しますか?memchaceのデータはアプリの動的ロード全体で保存されますか?注:インスタンスを明示的にアンロードしていませんが、アプリがリクエストを受け取らない場合はアプリエンジンがアンロードします。

4

2 に答える 2

1

Memcache データはいつでも消える可能性があります。永続性が保証されるのはデータストア データのみです。

初期化データを保存して、次の順序で取得できます。

  1. 静的データ メンバー(?)
  2. memcache データ
  3. データストア データ

(これが私がすることです)ニックの提案を取り上げたくない場合。

于 2012-04-27T15:08:35.150 に答える
1

または、10 分ごとに定期的に実行されるタスクをスケジュールすることもできます。このインスタンスはロードされたままになります。(スレッドセーフがオンになっていることを確認してください)

于 2012-05-04T16:19:43.043 に答える