繁体   English   中英

Python Bottle框架变得无响应

[英]Python Bottle framework becoming non-responsive

我在使用python的Bottle框架( http://bottlepy.org/docs/dev/index.html )托管网页时遇到问题。 在某些时间段内它似乎可以正常工作,但有时会出现以下错误,并且无法显示该网页。 脚本不会崩溃,但是网页没有响应。

有什么建议么?

 Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 295, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 321, in process_request
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 334, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib/python2.7/SocketServer.py", line 651, in __init__
    self.finish()
  File "/usr/lib/python2.7/SocketServer.py", line 710, in finish
    self.wfile.close()
  File "/usr/lib/python2.7/socket.py", line 279, in close
    self.flush()
  File "/usr/lib/python2.7/socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe

我也看到以下错误。 但是我猜想如果请求到不存在的网页/对象的请求会发生这些情况-

Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 295, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 321, in process_request
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 334, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib/python2.7/SocketServer.py", line 649, in __init__
    self.handle()
  File "/usr/lib/python2.7/wsgiref/simple_server.py", line 116, in handle
    self.raw_requestline = self.rfile.readline()
  File "/usr/lib/python2.7/socket.py", line 447, in readline
    data = self._sock.recv(self._rbufsize)
error: [Errno 104] Connection reset by peer

这个问题似乎类似于如何防止errno 32损坏管道?

您收到了SIGPIPE ,这可能是由于尝试写入关闭的套接字所致。 您可以尝试使用以下方式处理异常:

    except socket.error, e:
        if isinstance(e.args, tuple):
            print "Errno: %d" % e[0]
            if e[0] == errno.EPIPE:
               # Caught a peer disconnection
               print "Remote host disconnected"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM