【发布时间】:2011-06-19 23:43:09
【问题描述】:
开发和生产环境之间的 GAE/J 主要区别是什么。
- 生产时应重新检查哪些内容?
- 我应该期待什么样的数据存储差异?
【问题讨论】:
标签: java google-app-engine development-environment production-environment
开发和生产环境之间的 GAE/J 主要区别是什么。
【问题讨论】:
标签: java google-app-engine development-environment production-environment
开发性能(可以理解)与生产绝对无关。冷启动不是开发中的问题。
在开发服务器上存储特别大量的数据可能会出现问题,您可能必须将开发服务器的数据存储切换到 sqlite。
使用 javamail 发送电子邮件在开发中不可测试。
oauth 和 users API 仅在开发中实现最低限度。
Cron 作业不会在开发时执行,必须手动触发。
我很确定爆炸性索引问题不会在开发过程中对您造成影响,上传到生产环境后会遇到一个有趣的问题。
我有完全可以接受的 JDO 代码,可以在生产环境中的 dev throw 上运行 (persistall())。单独持久化每个对象然后工作。
根据我的经验,我相信还有更多。
【讨论】:
开发环境和生产环境之间存在许多差异,您应该在设计应用程序之前了解所有这些差异;与分布式生产环境的复杂性/令人敬畏相比,开发服务器是一个“玩具”(没有索引,单线程)是没有用的。
以下是您在生产环境中会发现的一些问题:
一般来说,每当 API 上有记录的约束(超时配额)时,开发环境都会放宽相同的约束;准备好编写大量防御性代码。
Viceversa,开发服务器,即使启用 Sqlite,在尝试存储/更新数千个实体时也存在严重限制;生产服务器是一个强大的野兽。
【讨论】:
【讨论】:
除了上面提到的那些,我还发现了另一个不同之处。在开发环境中,您可以将不可序列化的类和对象存储在会话属性中。但请注意仅在生产环境中将可序列化的类存储在会话属性中,否则会出现异常。
【讨论】: