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
Google app engine 什么时候在gae中对servlet静态变量进行gced?_Google App Engine_Servlets_Static Members - Fatal编程技术网

Google app engine 什么时候在gae中对servlet静态变量进行gced?

Google app engine 什么时候在gae中对servlet静态变量进行gced?,google-app-engine,servlets,static-members,Google App Engine,Servlets,Static Members,我正在尝试一个GAE应用程序,它所做的只是注册用户并与他们联系,然后返回他们的在线状态。如果在线,请返回他们的IP。所以我有一个JPA实体,有用户ID和联系人列表,还有一个临时ip字段。每次用户登录时,我都将其保存在地图中 private static final Map<String, SSUser> connectedRegisteredUsers = new HashMap<String, SSUser>(); private static final Map c

我正在尝试一个GAE应用程序,它所做的只是注册用户并与他们联系,然后返回他们的在线状态。如果在线,请返回他们的IP。所以我有一个JPA实体,有用户ID和联系人列表,还有一个临时ip字段。每次用户登录时,我都将其保存在地图中

private static final Map<String, SSUser> connectedRegisteredUsers = new HashMap<String, SSUser>();
private static final Map connectedRegisteredUsers=new HashMap();

现在令人惊讶的是,似乎过了一段时间地图就空了,而且会忘记用户。我不知道为什么会发生这种情况,不知道如何验证(除了观察行为之外),也不知道是否存在替代方案,除了将IP存储在数据存储中。

应用程序引擎可以随时启动和关闭应用程序的实例,以响应不断变化的流量模式。这里有两个问题:首先,您的应用程序将在多台机器上运行多个不同的实例,每台机器都有单独的状态(包括静态变量)。其次,可以随时关闭和启动实例,清除静态变量


如果需要全局一致的数据,则需要使用memcache和/或数据存储。

在我的情况下,我需要数据存储。