from flask import Flask from flask import request from flask import make_response,render_template import time from gevent import monkey from gevent.pywsgi import WSGIServer monkey.patch_all() app = Flask(__name__) @app.route('/home',methods = ['GET']) def home(): with open('/Users/shuziguoxue/Desktop/pythonBaseLearn/templates/home.html') as f: print('开始执行') return f.read().encode('utf-8') @app.route('/banner',methods=['GET']) def homeBanner(): time.sleep(10) print('10秒时间到了') return render_template('home.html',name='刘德华') http_server = WSGIServer(('127.0.0.1',9527),app) http_server.serve_forever()
这是我结合网上看的通过gevent和flask也可以实现aiohttp的异步效果,但是有个问题:如果我先调用了一个耗时很长的一个接口,再调用其他接口,都不会阻塞,但是当我调用多次这个耗时的操作时,后续的就必须等前面调用的执行完毕,才开始执行,根本不是异步的,有没有办法解决?(在上面的代码中就是,先请求localhost:9527/banner,然后再多次请求localhost:9527/home都是异步的;但是如果就多次请求localhost:9527/banner,就出现问题了,依旧是同步的,gevent这个并没有解决同一个请求的异步问题.)
gevent
flask
aiohttp
localhost:9527/banner
localhost:9527/home
Sign in to make a reply
作家大种马
这是我结合网上看的通过
gevent
和flask
也可以实现aiohttp
的异步效果,但是有个问题:如果我先调用了一个耗时很长的一个接口,再调用其他接口,都不会阻塞,但是当我调用多次这个耗时的操作时,后续的就必须等前面调用的执行完毕,才开始执行,根本不是异步的,有没有办法解决?(在上面的代码中就是,先请求localhost:9527/banner
,然后再多次请求localhost:9527/home
都是异步的;但是如果就多次请求localhost:9527/banner
,就出现问题了,依旧是同步的,gevent这个并没有解决同一个请求的异步问题.)