如何使用localhost上的多线程app引擎

时间:2012-11-10 10:50:00

标签: python multithreading google-app-engine

我在我的本地服务器上使用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]

1 个答案:

答案 0 :(得分:0)

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

您需要多线程BaseHTTPServerBaseHTTPServer继承自TCPServer的单线程。 SocketServer使用ThreadingTCPServer定义ThreadingMixIn。 这个mixin可以混合到上面的BaseHTTPServer中。

注意错误: 该错误意味着在http请求的第一行(GET ...)之前重置了连接。这对BaseHTTPServer来说不是问题。它应该继续运行。

告诉我它是否无法解决问题。