使用ThreadingMixIn,tens将变量传递给服务器

2024-10-06 11:28:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有python3代码,它用ThreadingMixIn实现HttpServer。 问题是我有一个复杂的tensorflow计算,它是在服务器启动时运行的。你知道吗

longComputation = Long_Computation()在(线程)RequestHandler内部时,它可以工作,但每次重建请求都太耗时

当它出来时,如下面的代码,我得到

TypeError:无法将feed\u dict键解释为Tensor:名称“save”/常量:0指一个不存在的张量。图形中不存在“save/Const”操作

longComputation  = Long_Computation()

class RequestHandler(BaseHTTPRequestHandler):
            # if i add longComputation  = Long_Computation() here, it works but reruns code for each request
            self.send_response(200) 
            self.end_headers()
            self.send_header('Content-type','application/json')
            length = int(self.headers['content-length'])
            data = self.rfile.read(length).decode('utf-8')

            longComputation.run({'data':data})
            self.wfile.write(bytes(json.dumps({}), "utf8"))
            return  
        return

class ThreadedHTTPServer(socketserver.ThreadingMixIn, HTTPServer):
    """Handle requests in a separate thread."""

def run():
    print('starting server...')

    server_address = ('0.0.0.0', PORT)
    httpd = ThreadedHTTPServer(server_address, RequestHandler)
    httpd.socket = ssl.wrap_socket (httpd.socket, keyfile='/etc/letsencrypt/live/classifier-icici.nanorep-services.com/privkey.pem', certfile='/etc/letsencrypt/live/classifier-icici.nanorep-services.com/cert.pem', server_side=True)
    httpd.serve_forever()

Tags: 代码selfsenddataserversavesocketlength