繁体   English   中英

Google App Engine中的内存使用情况

[英]Memory usage in Google App Engine

我有点困惑。 我写了一个Java独立应用程序,现在我想使用GAE将其部署在Web上,并同时了解GAE。 在我的应用程序中,我从文件读取数据,将其存储在内存中,进行处理,然后将结果存储在内存或文件中。 我知道现在我需要将结果存储在GAE的数据存储中,这很好。 因此,我可以在计算机上独立运行程序,然后将结果写入文件,然后使用GAE将所有结果上传到数据存储中,然后用户可以对其进行查询。 但是,有什么方法可以将整个过程转移到GAE应用程序中? 因此应用程序会从文件中读取数据,进行处理(使用应用程序服务器而不是我的计算机上的内存-至少需要4GB的RAM),然后完成操作(可能需要1-2个小时),然后将所有内容写入GAE数据存储? (因此,这是一个内部“离线”过程,不涉及任何用户)。

我有点困惑,因为Google没有提及有关内存配额的任何信息。

谢谢!

您将无法按照您的设想进行脱机处理。 您的应用程序可以使用多少内存是有限制的,但这不是主要问题。 应用程序引擎中的所有处理都在请求处理程序中完成。 换句话说,您希望您的应用执行的任何操作都将被编写为好像正在处理Web请求一样。 这些处理程序中的每一个都被限制为30秒的运行时间。 如果您的进程尝试运行更长的时间,它将被关闭。 App Engine已针对服务Web请求进行了优化,而无需进行大量计算。

话虽如此,您也许可以将计算任务分解为30秒的块并将中间结果存储在数据存储区或内存缓存中。 在这种情况下,您可以使用Cron作业或任务队列(均在App Engine文档中进行了描述)来继续调用处理程序,直到完成数据处理为止。

总而言之,是的,可能会做您想做的事,但这样做并不值得。 如果您想做计算量大的事情,请查看其他云解决方案,例如Amazon的EC2或Hadoop。

暂无
暂无

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

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