Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java appengine动态实例出现问题_Java_Google App Engine - Fatal编程技术网

Java appengine动态实例出现问题

Java appengine动态实例出现问题,java,google-app-engine,Java,Google App Engine,我有一个类,它在我的应用程序第一次启动时做一些事情(初始化)。这个初始化代码存在于静态块中。所以通常在类第一次加载时只执行一次 现在的问题是,当我的实例是动态的,当没有请求到达我的服务器时,我的应用程序将被卸载。因此,下次当请求到达时,应用程序将被动态加载,初始化代码将再次运行。这是我不想要的 我知道这个问题可以通过使用常驻实例来解决。但我猜常驻实例在免费配额中不可用。如果我错了,请纠正我 有什么办法可以解决这个问题吗 将计算结果存储在db中是一种选择,但它不可行,因为我需要快速获取数据? me

我有一个类,它在我的应用程序第一次启动时做一些事情(初始化)。这个初始化代码存在于静态块中。所以通常在类第一次加载时只执行一次

现在的问题是,当我的实例是动态的,当没有请求到达我的服务器时,我的应用程序将被卸载。因此,下次当请求到达时,应用程序将被动态加载,初始化代码将再次运行。这是我不想要的

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

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

将计算结果存储在db中是一种选择,但它不可行,因为我需要快速获取数据? memchace怎么样?它会工作吗?memchace中的数据会在动态加载我的应用程序时保留吗?
注意:我没有显式卸载我的实例,但当我的应用程序未收到任何请求时,应用程序引擎会执行此操作。

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

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

  • 静态数据成员(?)
  • memcache数据
  • 数据存储数据

  • (我就是这么做的)如果你不想接受Nick的建议。

    或者你可以安排每10分钟定期运行一次任务,这个实例将保持加载状态。(确保已启用threadsafe)

    听起来您好像在使用静态初始值设定项预计算某些数据。在这种情况下,为什么不希望每次启动新实例时都运行它呢?否则,您将无法访问该数据。我认为您误解了常驻实例(就像我一样)。常驻实例就像一个持久的空闲实例,在动态实例启动之前为请求提供服务。如果你设置了一个常驻实例(最小空闲实例),你会发现它只为你的应用程序提供一小部分请求,甚至不提供任何请求。