Django runserver在osx lion上保持计时

时间:2012-02-01 14:03:26

标签: django macos osx-lion

我在osx lion上遇到runserver问题。静态资产不会随机传输,我偶尔会得到这样的信息:

----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 57555)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 284, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 310, in process_request
    self.finish_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 323, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/Users/ehutch79/pyenv/sd/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 570, in __init__
    BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 639, in __init__
    self.handle()
  File "/Users/ehutch79/pyenv/sd/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 610, in handle
    self.raw_requestline = self.rfile.readline()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 447, in readline
    data = self._sock.recv(self._rbufsize)
timeout: timed out
----------------------------------------

这是非常不一致的。谷歌搜索没有透露任何信息有没有人知道可能导致它的原因?

它似乎不是浏览器,因为我在Chrome,本地和ie和远程盒子上的chrome都看过它。

1 个答案:

答案 0 :(得分:3)

开发服务器是单线程的,因此如果同时建立2个连接并且阻塞,它们将永远等待彼此。确保没有这样的问题:

  • 检查您是否有一些可以同时触发两个连接的设置(某些插件或某些隐式连接的javascript)。
  • 检查是否有一些视图同时访问相同的阻塞资源。

最近发生在我身上,当我尝试从我自己的代码测试SOAP调用到我自己的代码时,urllib从一个视图中打开一个触发另一个视图的url。

有时候,它不会访问阻塞资源,但并发会使请求非常缓慢,因此会超时。 E.G:你有两个浏览器指向同一个devserver,他们正在做积极的HTTP KeepAlive。

除了使用其他东西测试这些特定功能外,没有什么可做的,例如gunicorn或werkzeug。对于werzeug,请安装django-extensions,然后使用./manage.py runserver_plus --threaded