加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

使用Bottle框架的Python粘贴破坏管道错误

发布时间:2020-12-16 21:40:54 所属栏目:Python 来源:网络整理
导读:我正在使用实现WSGI请求和响应的Bottle框架,并且由于单线程问题,我将服务器更改为 PythonWSGIServer并使用Apache bench进行测试,但结果包含错误管道,与此问题 How to prevent errno 32 broken pipe?类似. 我已经尝试了答案但无济于事. Traceback (most recen
我正在使用实现WSGI请求和响应的Bottle框架,并且由于单线程问题,我将服务器更改为 PythonWSGIServer并使用Apache bench进行测试,但结果包含错误管道,与此问题 How to prevent errno 32 broken pipe?类似.
我已经尝试了答案但无济于事.
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/paste/httpserver.py",line 1068,in process_request_in_thread
    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 "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py",line 641,in __init__
    self.finish()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py",line 694,in finish
    self.wfile.flush()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py",line 303,in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe

服务器代码如下所示,我不知道如何使用线程池改善连接?

from paste import httpserver

    @route('/')
    def index():
        connection = pymongo.MongoClient(connectionString)
        db = connection.test
        collection = db.test
        return str(collection.find_one())

    application = default_app()
    httpserver.serve(application,host='127.0.0.1',port=8082)

解决方法

问题是由于WSGIServer是同步服务器,并不适用于同时发送请求的高并发用户.为了绕过这些后备,可以使用很多第三方框架.其中最受欢迎的是Gevent greenlet图书馆,Tornado和CherryPy.所有这些都基于事件驱动和异步方法,使他们能够处理多个并发用户.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读