我已将我的 Google App Engine 应用分为一个小版本(常用部分 - 用户界面等)和一个大版本(所有小版本加上管理屏幕、cron 工作人员等)
计划是 GAE 应该能够非常快速地加载我的小版本并满足每个实例的大量请求,因为内存需求很小。大版本将为管理屏幕和 cron 工作加载,并且需要 Guice、模板库、apache-commons 等。
问题是,当用户点击“管理员”选项卡时,需要自动转移到大版本 - 我怎样才能生成这个链接?我希望按如下方式对我的应用程序进行版本控制:
small-1.myapp.appspot.com
big-1.myapp.appspot.com
small-2.myapp.appspot.com
big-2.myapp.appspot.com
等等。当用户请求小代码中不可用的页面时,将用户从small-1重定向到big-1。
我尝试使用 SystemProperty.applicationVersion 但它似乎不包含应用程序版本字符串。
最佳答案
你确定吗
com.google.appengine.api.utils.SystemProperty.applicationId.get()
不会产生您的应用程序的 ID(在您的情况下为 myapp
),或者
com.google.appengine.api.utils.SystemProperty.applicationVersion.get()
不会产生正在运行的应用程序的主要版本(例如:small-1 [timestamp]
)(您必须删除时间戳)?
如果做不到这一点,既然您已经知道您的应用 ID 和版本号,您是否可以不在 appengine-web.xml
中声明新的系统属性并使用这些值?
尽管如此,您可能需要考虑一种更干净的替代方案:只有一个应用程序(维护和上传到 GAE 的工作量要少得多),并且要么为您的管理部分执行延迟初始化,要么执行我所做的操作并放置应用程序启动时初始化为排队任务。
关于java - 如何从应用程序的 "small"版本重定向到 "big"版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10816174/