python学习之——tornado 实现异步调用接口 @web.asynchronous

本文介绍了一种使用Tornado框架实现异步调用接口并支持多线程并发的简便方法,适用于提高服务性能。
摘要由CSDN通过智能技术生成

终于找到一种 比较方便的实现 tornado 异步操作且支持多线程并发的方法了

server.py

from tornado import gen, web, ioloop, template
from tornado.gen import coroutine, Future
from tornado.ioloop import IOLoop
from tornado.concurrent import run_on_executor
from concurrent.futures import ThreadPoolExecutor
import threading
import time

class Pic_Pred(web.RequestHandler):
    #线程池
    max_thread_num = 1
    executor = ThreadPoolExecutor(max_workers=max_thread_num)

    # 让接口保持长连接
    @web.asynchronous
    @gen.engine
    def post(self):
        try:
            body_dic = json.loads(self.request.body.decode('utf-8'))

            imgb64 = body_dic.get("img_b64", None)
            if imgb64 is None:
                # 不可直接 return, 必须分开
                yield self.finish({"code":1, "result":[], "msg":"error: no image, please check !!!"})
                return

            buf_str 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值