flask异步操作_深入flask之异步非堵塞实现代码示例

官方其实已经给出了方案,只不过藏的有点深,在加上网上有很多不太靠谱的帖子误导了我(当然不排除我没理解的原因哈)。所以为了让有些朋友的少走点弯路,也为给自己做个备忘。

解决方案: flask+gevent

安装gevent

pip install gevent

修改代码

# 文件头部

from gevent import monkey

from gevent.pywsgi import WSGIServer

# 在玩websockets,可以无视之哈,有空贴下flask websockets实现哈

from geventwebsocket.handler import WebSocketHandler

import time

# gevent的猴子魔法

monkey.patch_all()

app = Flask(__name__)

app.config.update(

DEBUG=True

)

@app.route('/asyn/1/', methods=['GET'])

def test_asyn_one():

if request.method == 'GET':

time.sleep(10)

return 'hello asyn'

@app.route('/test/', methods=['GET'])

def test():

return 'hello test'

if __name__ == "__main__":

# app.run()

http_server = WSGIServer(('', 5000), app, handler_class=WebSocketHandler)

http_server.serve_forever()

运行之后可以先访问/asyn/1/再访问/test/,可以明显发现,/asyn/1/在做耗时任务时不会影响其他请求

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值