我在我的本地服务器上使用python2.7,google app引擎和mysql数据库(appengine rdbms)
我的应用程序运行perfectyl(一个连接)但是当两个或多个连接同时, 我得到 1054套接字错误因为basehttpserver不支持多线程 我能找到解决这种情况的方法
我可以将我的appengine应用程序部署到apache或如何在localhost上进行多线程构建
File "C:\Python27\lib\SocketServer.py", line 284, in _handle_request_noblock
self.process_request(request, client_address)
File "C:\Python27\lib\SocketServer.py", line 310, in process_request
self.finish_request(request, client_address)
File "C:\Python27\lib\SocketServer.py", line 323, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2734, in __init__
BaseHTTPServer.BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
File "C:\Python27\lib\SocketServer.py", line 639, in __init__
self.handle()
File "C:\Python27\lib\BaseHTTPServer.py", line 343, in handle
self.handle_one_request()
File "C:\Python27\lib\BaseHTTPServer.py", line 313, in handle_one_request
self.raw_requestline = self.rfile.readline(65537)
File "C:\Python27\lib\socket.py", line 476, in readline
data = self._sock.recv(self._rbufsize)
error: [Errno 10054]
答案 0 :(得分:0)
from SocketServer import ThreadingMixIn # socketserver in Python 3
class ThreadingHTTPServer(ThreadingMixIn, BaseHTTPServer): pass # see line 628 in SocketServer.py
您需要多线程BaseHTTPServer
。 BaseHTTPServer
继承自TCPServer
的单线程。 SocketServer
使用ThreadingTCPServer
定义ThreadingMixIn
。
这个mixin可以混合到上面的BaseHTTPServer
中。
注意错误: 该错误意味着在http请求的第一行(GET ...)之前重置了连接。这对BaseHTTPServer来说不是问题。它应该继续运行。
告诉我它是否无法解决问题。