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

11 投票
3 回答
4917 浏览
提问于 2025-04-16 20:13

我最近在玩谷歌应用引擎(GAE),觉得Windows SDK里的GAE启动器用起来很方便。

不过我遇到一个问题,就是每次启动应用时,它反应很慢。这是因为程序在启动之前会先检查更新,这个过程会让它卡住,等着响应。我的主要开发机器是通过代理服务器上网的,而GAE启动器被这个代理给挡住了。

请问有没有办法在启动启动器时关闭GAE的更新检查?也许可以通过快捷方式给底层的可执行文件传递一个命令?

3 个回答

4

作为更新,目前在 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) 
5

在你启动新的 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, 

希望这能帮到你。

15

Google App Engine(GAE)使用Python的urllib2库来检查更新。这个库会从环境变量中获取代理设置,而不是从Windows注册表中获取。

默认情况下,ProxyHandler会使用名为<scheme>_proxy的环境变量,其中<scheme>是指URL的类型。例如,http_proxy环境变量会被读取,以获取HTTP代理的URL。

如果你需要使用代理,但没有正确设置这个变量,你的GAE启动器会一直卡住,直到连接超时,这样会拖延程序的启动。

如果你创建一个新的环境变量,叫做http_proxy,并设置为host_or_ip:port,那么GAE启动器就会很快启动。

要定义一个环境变量,可以按照以下路径操作:控制面板 -> 系统和安全 -> 系统 -> 高级系统设置 -> 高级选项卡 -> 环境变量...

撰写回答