2011-06-24 71 views
11

我一直在修補GAE,我喜歡使用Windows SDK提供的GAE Launcher。如何在Google App Engine啓動器啓動時禁用自動檢查更新?

我的問題是,當我啓動應用程序時,它需要很長時間才能變得響應。這是因爲程序首先在啓動應用程序之前檢查更新。這會導致它掛起,而它正在等待響應。我的問題是我的主要開發機器在代理服務器後面,GAE啓動器被代理阻止。

當我啓動啓動程序時,是否可以禁用GAE更新檢查?也許可以通過我的快捷方式傳遞給底層可執行文件的命令?

+0

嘗試清除您的數據存儲發展(如果你的情況是可行的),發現這一點。 –

+0

我的數據存儲已清除。可以肯定的是,當我雙擊啓動器應用程序圖標時,就會發生掛起 - 而不是當我嘗試啓動項目時。 – RLH

回答

15

Google App Engine(GAE)使用python urllib2庫來檢查更新。該庫從*_proxy環境變量中獲取代理設置,而不是Windows註冊表。

默認情況下,ProxyHandler使用名爲<方案> _proxy,其中<方案>是所涉及的URL方案的環境變量。例如,讀取http_proxy環境變量以獲取HTTP代理的URL。

如果您需要使用代理並且沒有正確定義此變量,GAE啓動器將鎖定直到連接超時,從而延遲程序的啓動。

如果您使用host_or_ip:port創建了一個名爲http_proxy的新環境變量,GAE啓動器將以一眨眼的方式啓動。

要定義一個環境變量,請訪問:Control Panel -> System and Security -> System -> Advanced system settings -> Advanced Tab -> Environment Variables...

+0

啊哈,太棒了!這與你所說的完全一樣。多年來這一直令我煩惱。 – RLH

+0

哈哈,我很高興我的幫助:D,實際上surlac的解決方案爲我工作,但我不喜歡改變源代碼,另外,我的解決方案將修復其他Python應用程序和自寫代碼。 – KurzedMetal

5

確保所有的GAE-java/python進程都在關閉之前關閉。在你點擊CTRL + C後,他們經常會卡住並佔用處理器時間和內存。


[編輯]

要禁用更新運行與

--disable_update_check 

選擇服務器。

用法:< DEV-應用程序服務器> [選項] <戰爭目錄>


[編輯]

打開dev_appserver.cmd腳本GAE SDK您最喜愛的文本處理器並手動添加--disable_update_check選項之後DevAppServerMain的定義。

java -cp "%~dp0\..\lib\appengine-tools-api.jar"^
com.google.appengine.tools.KickStart^
    com.google.appengine.tools.development.DevAppServerMain --disable_update_check %* 

你會遇到來自GAE啓動一個應用程序下一次,它將與「--disable_update_check」選項自動啓動。


[編輯]

對於Python:

開放Python源代碼在

[GAE_SDK_PY] /google/appengine/tools/dev_appserver_main.py

與你最喜歡的文本處理器,找到第227行,它看起來像

ARG_SKIP_SDK_UPDATE_CHECK:假,

,並與下面覆蓋它:

ARG_SKIP_SDK_UPDATE_CHECK: True, 

希望這有助於。

+0

如果我從控制檯窗口運行服務器,這將工作。將--disable_update_check選項傳遞給App Engine啓動器不會有幫助。可能沒有辦法解決這個問題。但我可以接受,這個問題有點令人討厭。 – RLH

+0

要解決此問題,您需要按答案中所述手動編輯「dev_appserver.cmd」腳本。 – surlac

+0

啊,我明白了。有沒有一個python等價物? – RLH

2

爲更新,與Google App Engine 1.9.19當前工作的選擇是編輯文件~/.appcfg_nag作出如下改變。

- opt_in: true 
+ opt_in: false 
    timestamp: 0.0 

我通過諮詢 google_appengine/README:line 120

--skip_sdk_update_check Skip checking for SDK updates. If false, fall back                      
          to opt_in setting specified in .appcfg_nag   
          (Default false) 
相關問題