2013-10-16 27 views
4

我刚刚开始使用GAE,并且遇到了问题。 当我部署一个应用程序时,它似乎没有更新它,当我在浏览器中运行它时,它仍然运行旧版本。在App Engine中部署后,应用程序不会更新

我简单的代码是:

import java.io.IOException; 
import javax.servlet.http.*; 

@SuppressWarnings("serial") 
public class AppEngineProjectServlet extends HttpServlet { 
public void doGet(HttpServletRequest req, HttpServletResponse resp) 
     throws IOException { 
    resp.setContentType("text/html"); 
    resp.getWriter().println("<p>Hi there</p>"); 
} 

}

我创建Eclipse的一个新的Web应用程序项目,我得到的代码。我刚刚将'Hello World'文本更改为'Hi there',当我部署它时,它仍然运行Hello World!

我也尝试更改版本的应用程序时,部署和设置新版本默认,但似乎没有为我工作。为什么会发生这种情况,我可能忽略了这个问题吗?

+0

你是如何部署的?你尝试过'CTRL + F5'吗?您的应用管理面板中的实例如何?他们是否显示最新版本? –

回答

4

经过很长的chat session OP问题已解决。

要点:

  1. 始终在本地测试您的应用程序(使用Development Server)部署到云之前
  2. 查找出浏览器的缓存问题(使用Ctrl+F5刷新并放弃本地缓存)
  3. 如果要缓解生产中断风险,请在部署到云之前更改应用程序版本
  4. 部署完成后,请检查您的应用程序管理控制台GAE
    1. 管理 - >管理日志检查像新条目“部署了新的版本”
    2. 首页 - >版本确保访问最近部署版本的Live URI [版本]。[app-name] .appspot.com)。
    3. 再次,确保浏览器缓存不凑了过来(Ctrl+F5是你的朋友)
  5. 另外,为了避免运行时异常,如果以这样的方式更新持久层的新指标需要请检查数据 - >数据存储索引以确保没有索引仍然是building(此can take hours or even days)。
  6. 完成测试后(确保Live URI版本正常工作),只需创建新版本默认(在下主版本 - >版本)。
  7. 建议做一些A/B测试。 GAE有一个内置的支持Traffic Splitting。在你感觉100%确信它能按预期工作(实际上是200%)之前,不要跳枪并将新版本推广到默认版本。虽然您可以随时将默认版本更改为之前的版本,但如果您回滚(相信我......曾经在那里,那么做),您的用户将不会高兴。
+0

有用,但请确定哪个项目实际回答了问题:“是否有任何特别的原因可能导致我忽视?” – ChrisJJ

+0

“管理 - >管理日志”我在Google云端平台菜单中/下看不到这样的条目。 – ChrisJJ

+0

“主要 - >版本”我在Google云端平台菜单下看不到这样的条目。我确实看到App Engine - >版本http://i.imgur.com/5vBFFDs.png – ChrisJJ

3

如果您希望在上传后立即看到您的更改,请更改应用程序的版本,然后在管理控制台中更改默认值。

当您更新时,App Engine不会立即追捕并重新启动您的所有实例。对于具有多个实例的大型应用程序的用户来说,这样的事情会造成创伤,特别是当该应用程序的实例启动缓慢时。

相关问题