繁体   English   中英

google app引擎:没有用户数据的新实例

[英]google app engine : new instance with no user data

当用户请求重定向到新实例时,我的Google引擎Java应用会释放所有用户数据:

此请求导致为您的应用程序启动一个新进程,从而导致您的应用程序代码首次被加载。因此,与典型的应用程序请求相比,此请求可能花费更长的时间并使用更多的CPU。

因为这是非常不方便的行为,所以我尝试设置一个常驻实例,因此我将“空闲实例”设置为1-1,但这不能解决我的问题,因为我正在获取一个常驻实例,并且总是有一个新的(动态)实例创建它可以处理一些请求...(这个人有同样的问题: 为什么GAE启动了第二个实例,并将“最大空闲实例数”设置为1

我根本不想使用动态实例( 我的应用程序始终负载低,用户不多 )。 我只需要为用户提供一个常驻实例。 是否可以在GAE中设置? 如果不是,是否有任何便捷, 可靠的方法来保存页面之间的数据(例如,将它们存储在数据存储区中?)。 我在页面之间传递了许多POST参数。

Google App Engine是一个云平台。 没有动态实例,您的应用程序设计将无法获得云平台的所有优势。

要解决数据传输问题,可以使用以下方法之一:

  1. 使用标准的Java EE会话对象。 会话存储在数据存储区中,因此您不会丢失它。 但是您不要忘记,由于DataStore实体的大小限制,您的会话对象应该是SERIALIZABLE,并且小于1MB。

  2. 手动将数据存储在DataStore中,并在页面之间传输实体ID。 相同的1MB实体大小限制适用。

  3. 使用BlobStore或Cloud Storage将数据存储为文件,并在页面之间传输文件标识符。 这将有助于消除1Mb的限制。

任何一种方法都允许在请求之间持久化数据,但是有其自身的局限性。 您需要提供要求的详细信息才能获得清晰的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM