appengine动态实例的问题

时间:2012-04-27 09:16:25

标签: java google-app-engine

我有一个类在我的应用程序第一次启动时执行某些操作(初始化)。这个初始化代码存在于静态块中。因此,当第一次加载类时,通常只应该执行一次。

现在当问题出现时,我的实例是动态的,当没有请求进入我的服务器时,我的应用程序被卸载。所以下次请求来时动态加载app并初始化代码再次运行。这就是我不想要的

我知道这个问题可以通过使用驻留实例来解决。但是我想驻留实例在免费配额中不可用。如果我错了,请更正我。

有什么方法可以解决这个问题吗?

在db中存储计算结果是一个选项,但它不可行,因为我想快速得到这些数据? memchace怎么样?它会工作吗?memchce中的数据是否会在我的应用程序的动态加载中得到保存? 注意:我没有明确地卸载我的实例,但应用程序引擎在我的应用程序没有收到任何请求时执行此操作。

2 个答案:

答案 0 :(得分:1)

Memcache数据可以随时消失。只保证数据存储数据是持久的。

您可以存储初始化数据并按顺序获取:

  1. 静态数据成员(?)
  2. memcache数据
  3. 数据存储数据
  4. (这就是我所做的)如果你不想接受尼克的建议。

答案 1 :(得分:1)

或者您可以安排定期每10分钟运行一次的任务,此实例将保持加载状态。 (确保有线程安全)