我有一个类,它在我的应用程序首次启动时执行某些操作(初始化)。此初始化代码存在于静态 block 中。因此通常只应在类首次加载时执行一次。
现在,当问题是因为我的实例是动态的,当没有请求到达我的服务器时,我的应用程序被卸载。所以下次当请求到来时,应用程序会动态加载,初始化代码再次运行。这就是我不想要的.
我知道这个问题可以通过使用常驻实例来解决。但我猜常驻实例在免费配额中不可用。如果我错了,请纠正我。
有什么办法可以解决这个问题吗?
将计算结果存储在数据库中是一种选择,但它不可行,因为我想要快速获得该数据? memchace 怎么样?它会起作用吗?memchace 中的数据会在我的应用程序的动态加载过程中保留吗? 注意:我没有明确卸载我的实例,但当我的应用程序没有收到任何请求时,应用程序引擎会执行此操作。
最佳答案
Memcache 数据随时可能消失。仅保证数据存储区数据是持久的。
您可以存储初始化数据并按顺序获取它:
- 静态数据成员(?)
- 内存缓存数据
- 数据存储区数据
(这就是我所做的)如果你不想接受尼克的建议。
关于java - appengine 动态实例的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10347985/