为什么Django开发服务器挂在这个管理工具JS文件上?

时间:2011-08-18 19:02:17

标签: django django-admin

在使用Django管理工具时,它会定期挂起并停止响应请求,直到重新启动。每当它挂起时,日志中的最后一行是:

  

“GET / admin / jsi18n / HTTP / 1.1”200 2158

挂起似乎发生在POST之后(比如查看添加对象的结果)。据我所知,它发生在各种不同的模型中,并且是不可预测的。唯一的常量是对该Javascript文件的GET请求。此外,挂起之间的时间也各不相同:有时您可以使用管理工具添加对象一小时,有时不能持续5分钟。

在性能方面,该框似乎没有太大的压力(平均负载为0.17-0.20)

[编辑] 它最近输出了一个看起来很有趣的错误,虽然它自行恢复并继续提供响应:

[18/Aug/2011 13:19:50] "GET /admin/jsi18n/ HTTP/1.1" 200 2158
Traceback (most recent call last):
File "/usr/local/lib/python2.6/dist-packages/django/core/servers/basehttp.py", line 284, in run
self.finish_response()
File "/usr/local/lib/python2.6/dist-packages/django/core/servers/basehttp.py", line 324, in finish_response
self.write(data)
File "/usr/local/lib/python2.6/dist-packages/django/core/servers/basehttp.py", line 420, in write
self._write(data)
File "/usr/lib/python2.6/socket.py", line 300, in write
self.flush()
File "/usr/lib/python2.6/socket.py", line 286, in flush
self._sock.sendall(buffer)
error: [Errno 32] Broken pipe

1 个答案:

答案 0 :(得分:1)

这很可能是因为您使用的是谷歌浏览器。这将与Web服务器建立多个连接,在Django Dev服务器的情况下,这并不好。你有两个选择。 使用

  • Django Concurrent Server
  • 使用生产服务器设置您的开发服务器(不建议,更复杂)
  • 使用Firefox,告诉Chrome停止多个连接
  • 使用单独的服务器在计算机上托管静态文件。像Lighttpd一样。