3

我在本地服务器和 mysql 数据库(appengine rdbms)上使用 python2.7、谷歌应用引擎

我的应用程序运行完美(一个连接),但是当两个或多个连接同时,我得到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]
4

1 回答 1

0
from SocketServer import ThreadingMixIn # socketserver in Python 3
class ThreadingHTTPServer(ThreadingMixIn, BaseHTTPServer): pass # see line 628 in SocketServer.py

你想要一个多线程BaseHTTPServerBaseHTTPServer继承自TCPServerwhich 是单线程的。SocketServer定义ThreadingTCPServer使用ThreadingMixIn. 该mixin可以混合到上面的BaseHTTPServer类似物中。

关于错误的注意事项:错误意味着连接在 http-request 的第一行(GET ...)之前被重置。这对 BaseHTTPServer 来说不是问题。它应该继续运行。

告诉我它是否不能解决问题。

于 2013-10-07T12:41:05.160 回答