3

由于上传的硬性限制(即 10,000),尝试将我的应用程序部署到 appengine 失败。

我的应用程序正在使用其他 2 种语言的外部库和常量。请参考以下快照:

在此处输入图像描述

GWT.Async 块已放置在项目中的必要位置。

使用以下编译时选项: -localWorkers 3 -XfragmentCount 10

但问题是当我将项目上传到 appengine 时,出现以下异常:

**

java.io.IOException: Applications are limited to 10000 files, you have 34731

**

我知道我可以通过降低跨浏览器兼容性或减少语言环境来减少文件数量。但这不是部署时的实用方法

所以请给我一些替代方案。

我想提到的另一件事是该项目在其大多数屏幕中广泛使用 VerticalPanel/Horizo​​ntalPanel/FlexTable/DialogBox。我不确定这是否与这个问题有关。

4

3 回答 3

0

恐怕这也会发生在我身上,我在项目中间遇到了这个问题,所以我将浏览器限制为 chrome 和 ff。但是当我必须真正部署时,这可能是一个问题。

一个应用程序的每个版本限制为 10,000 个上传文件。每个文件的最大大小限制为 32 兆字节。此外,如果所有版本的所有文件的总大小超过最初的免费 1 GB,则每月每 GB 将收取 0.13 美元的费用。 https://developers.google.com/appengine/docs/quotas#Deployments

如果您的数据在语言之间不相关,则解决方案可能是将每种语言部署为应用程序

于 2013-11-04T10:15:05.223 回答
0

听起来您可能还会将所有 gwt 类与您的应用程序一起部署。

当我是一个重度 appengine 用户时,我肯定会 jars 我所有上传的类(并且不包括任何非共享的 gwt 代码)。您可能想要 $find . -n "*.class" | wc -l来计算您发送的课程数量。

预先调整你的类将使 15000 个类文件 = 1 个 jar 文件。

制作巨大的罐子很糟糕,因为您需要在每次更改时重新部署整个罐子。最好有很多小罐子。;)

于 2013-11-04T21:13:29.807 回答
0

我所做的是将所有 GWT 生成的文件放入一个 ZIP 并使用 servlet 提供它们。

为了稍微优化一下,我在解压缩后将每个文件都放在了 memcache 中。

于 2013-11-05T16:35:29.613 回答