2013-10-16 74 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不會立即追捕並重新啓動您的所有實例。對於具有多個實例的大型應用程序的用戶來說,這樣的事情會造成創傷,特別是當該應用程序的實例啓動緩慢時。

相關問題