如何在启动Google App Engine Launcher时禁用自动检查更新?
我最近在玩谷歌应用引擎(GAE),觉得Windows SDK里的GAE启动器用起来很方便。
不过我遇到一个问题,就是每次启动应用时,它反应很慢。这是因为程序在启动之前会先检查更新,这个过程会让它卡住,等着响应。我的主要开发机器是通过代理服务器上网的,而GAE启动器被这个代理给挡住了。
请问有没有办法在启动启动器时关闭GAE的更新检查?也许可以通过快捷方式给底层的可执行文件传递一个命令?
3 个回答
作为更新,目前在 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)
在你启动新的 GAE-java/python 进程之前,确保所有的 GAE-java/python 进程都已经关闭。因为有时候它们会卡住,继续占用处理器时间和内存,尤其是在你按下 CTRL+C 后。
[编辑]
如果想要关闭更新功能,可以用下面的命令启动服务器:
--disable_update_check
选项。
用法:<dev-appserver> [选项] <war 目录>
[编辑]
打开 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(GAE)使用Python的urllib2库来检查更新。这个库会从环境变量中获取代理设置,而不是从Windows注册表中获取。
默认情况下,ProxyHandler会使用名为<scheme>_proxy的环境变量,其中<scheme>是指URL的类型。例如,http_proxy环境变量会被读取,以获取HTTP代理的URL。
如果你需要使用代理,但没有正确设置这个变量,你的GAE启动器会一直卡住,直到连接超时,这样会拖延程序的启动。
如果你创建一个新的环境变量,叫做http_proxy
,并设置为host_or_ip:port
,那么GAE启动器就会很快启动。
要定义一个环境变量,可以按照以下路径操作:控制面板 -> 系统和安全 -> 系统 -> 高级系统设置 -> 高级选项卡 -> 环境变量...