为什么 dev_appserver.py(App Engine 开发服务器)挂起等待请求?

2024-03-22

我最近越来越多地看到这个错误。我在 Ubuntu 10.10 上使用 Chrome 开发通道浏览器。当我刷新网页时 - dev_appserver 似乎挂起。超时后,如果完成请求。

如果我在应用程序服务器终端窗口中输入 CTRL-C,则在显示此回溯后似乎会“取消粘连”服务器:

Exception happened during processing of request from ('192.168.1.19', 48238)
Traceback (most recent call last):
  File "/usr/local/lib/python2.5/SocketServer.py", line 222, in handle_request
    self.process_request(request, client_address)
  File "/usr/local/lib/python2.5/SocketServer.py", line 241, in process_request
    self.finish_request(request, client_address)
  File "/usr/local/lib/python2.5/SocketServer.py", line 254, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py", line 3123, in __init__
    BaseHTTPServer.BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
  File "/usr/local/lib/python2.5/SocketServer.py", line 522, in __init__
    self.handle()
  File "/usr/local/lib/python2.5/BaseHTTPServer.py", line 316, in handle
    self.handle_one_request()
  File "/usr/local/lib/python2.5/BaseHTTPServer.py", line 299, in handle_one_request
    self.raw_requestline = self.rfile.readline()
  File "/usr/local/lib/python2.5/socket.py", line 346, in readline
    data = self._sock.recv(self._rbufsize)
KeyboardInterrupt

奇怪的是,当我打开 Firefox 查看它是否仅与 Chrome 相关时,问题就消失了(在 Firefox 和 Chrome 上)。

我将此解释为浏览器通过不完全从响应中提取所有字节来保持先前的请求打开。由于 dev_server 是单线程的, 在旧请求超时之前,它将不会处理任何进一步的请求。

这里有人有任何其他见解吗?发生这种情况时非常烦人,因为我必须杀死并重新启动 app_devserver 才能继续。


群里有很多关于这个的帖子。显然 Chrome 会发送多个请求,然后 SDK 会以某种方式阻止其中一个请求。

我见过几个用户say http://groups.google.com/group/google-appengine-python/browse_thread/thread/d2a265c7de1a6401/3644a9396379e85b?lnk=gst使用 --disable-preconnect 启动 Chrome 会有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 dev_appserver.py(App Engine 开发服务器)挂起等待请求? 的相关文章

随机推荐