tornado.web.Application多线程并发实现

class MainHandler(tornado.web.RequestHandler):
    executor = ThreadPoolExecutor(1)

    def initialize(self, relPredict):
        self.predict = relPredict

    def get(self):
        self.write("Hello, world")

    @tornado.gen.coroutine
    def post(self):
        resDict = yield self.getSentimentScore()
        self.write(resDict)

    @run_on_executor
    def getSentimentScore(self):
        param = self.request.body
        param_json = json.loads(param.decode('utf-8'))
        text = param_json['text']
        # 设置模式为行分词模式
        # prediect = LSTMPredict()
        with graph.as_default():
            # print("开始预测……")
            result = self.predict.predict(text)
        resDict = {}
        resDict["y_pred"] = str(result[0])
        # print(resDict)
        return resDict
if __name__ == "__main__":
    predict = LSTMPredict()
    graph = tf.get_default_graph()
    app = tornado.web.Application(handlers=[(r"/sentimentAnalysis", MainHandler, {"relPredict": predict})],
                                  autoreload=False, debug=False)
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.bind(9996)
    http_server.start()
    tornado.ioloop.IOLoop.instance().start()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。