我正在使用 Bottle 框架实现 WSGI 请求和响应,并且由于单线程问题,我将服务器更改为 PythonWSGIServer 并使用 Apache bench 进行测试,但结果包括错误损坏的管道,这与这个问题类似如何防止errno 32断管? https://stackoverflow.com/questions/11866792/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)