如何在启动Google App Engine Launcher时禁用自动检查更新?

时间:2011-06-24 13:04:31

标签: python windows google-app-engine

我一直在修改GAE,我喜欢使用Windows SDK提供的GAE Launcher。

我的问题是,当我启动应用程序时,它需要很长时间才能响应。这是因为程序在启动应用程序之前首先检查更新。这导致它挂起,而它正在等待响应。我的问题是我的主要开发机器在代理服务器后面,并且GAE Launcher被代理阻止。

当我启动启动器时,有没有办法可以禁用对GAE更新的检查?也许我可以通过我的快捷方式传递给底层可执行文件的命令?

3 个答案:

答案 0 :(得分:15)

Google App Engine(GAE)使用python urllib2库来检查更新。此库从*_proxy环境变量获取代理设置,而不是Windows注册表。

  

默认情况下,ProxyHandler使用名为< scheme> _proxy的环境变量,其中< scheme>是涉及的URL方案。例如,读取http_proxy环境变量以获取HTTP代理的URL。

如果您需要使用代理并且没有正确定义此变量,则GAE Launcher将锁定,直到连接超时,从而延迟程序的启动。

如果您使用http_proxy创建名为host_or_ip:port的新环境变量,GAE Launcher将在眨眼之间启动。

要定义环境变量,请转到:Control Panel -> System and Security -> System -> Advanced system settings -> Advanced Tab -> Environment Variables...

答案 1 :(得分:5)

确保在分叉新进程之前关闭所有GAE-java / python进程。在按下CTRL + C后,它们经常会卡住并消耗处理器时间和内存。


[编辑]

要禁用更新,请使用

运行服务器
--disable_update_check

选项。

  

用法:< dev-appserver> [选项]   < war directory>


[编辑]

使用您喜欢的文本处理器从GAE SDK打开 dev_appserver.cmd 脚本,并在 DevAppServerMain 定义后立即手动添加 - disable_update_check 选项。< / p>

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

下次您将从GAE Launcher运行应用程序时,它将自动以“--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, 

希望这有帮助。

答案 2 :(得分: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)