我一直在修改GAE,并且我喜欢Windows SDK提供的GAE启动器的易用性。
我的问题是,当我启动应用程序,它需要很长时间才能变得快速响应。 这是因为程序在启动应用程序之前首先检查更新。 这导致它挂起,而它正在等待响应。 我的问题是我的主要开发机器是在代理服务器后面,GAE启动器被代理阻塞。
有没有一种方法可以在启动启动器时禁用GAE更新检查? 也许一个命令,我可以通过我的快捷方式传递给底层的可执行文件?
Google App Engine(GAE)使用python urllib2库检查更新。 这个库从*_proxy
环境变量,而不是Windows注册表获取代理设置。
默认情况下,ProxyHandler使用名为<scheme> _proxy的环境变量,其中<scheme>是涉及的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...
确保所有的GAE-java / python进程在你换新的之前都被关闭了。 在按CTRL + C之后,他们经常会卡住并占用处理器时间和内存。
[编辑]
要禁用更新,请使用运行服务器
--disable_update_check
选项。
用法:<dev-appserver> [options] <war directory>
[编辑]
使用您最喜欢的文本处理器从GAE SDK中打开dev_appserver.cmd脚本,并在DevAppserverMain定义之后手动添加–disable_update_check选项。
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:False,
并用以下内容覆盖它:
ARG_SKIP_SDK_UPDATE_CHECK: True,
希望这可以帮助。
作为更新, 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)