flask请求异步执行(转载)
Flask默认是不支持非阻塞IO
的,表现为:
当 请求1
未完成之前,请求2
是需要等待处理状态,效率非常低。
在flask中非阻塞实现可以由2种:
- 启用flask多线程机制
# Flask
from flask import Flask, request, g
import os
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
app = Flask(__name__)
app.config.update(DEBUG=True)
#获取本机电脑名
myname = socket.getfqdn(socket.gethostname( ))
#获取本机ip
myaddr = socket.gethostbyname(myname)
myport = 8912
@app.route('/test1')
def the_test1():
print "test1 print start"
time.sleep(10)
print "test1 print after sleep"
return 'hello asyn'
@app.route('/test2')
def the_test2():
print "test2 print!"
return 'test2 return'
if __name__ == '__main__':
app.run(host=myaddr,port=myport,debug=False,threaded=True) ### threaded开启以后 不需要等队列 threaded=True
#或者
#app.run(host=myaddr,port=myport,debug=False,processes=3) ### processes=N 进程数量,默认为1个
- 启用monkey模块socket支持
其中使用了Gevent 是一个 Python 并发网络库,它使用了基于libevent 事件循环的 greenlet 来提供一个高级同步 API。下面是代码示例:
from gevent.wsgi import WSGIServer
from yourapplication import app
http_server = WSGIServer(('', 5000), app)
http_server.serve_forever()
# Flask
from flask import Flask, request, g
import os
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
# gevent
from gevent import monkey
from gevent.pywsgi import WSGIServer
monkey.patch_all()
# gevent end
app = Flask(__name__)
app.config.update(DEBUG=True)
#获取本机电脑名
myname = socket.getfqdn(socket.gethostname( ))
#获取本机ip
myaddr = socket.gethostbyname(myname)
myport = 8912
@app.route('/test1')
def the_test1():
print "test1 print start"
time.sleep(10)
print "test1 print after sleep"
return 'hello asyn'
@app.route('/test2')
def the_test2():
print "test2 print!"
return 'test2 return'
if __name__ == '__main__':
http_server = WSGIServer((myaddr, myport), app)
http_server.serve_forever()
作者:_小老虎_
链接:https://www.jianshu.com/p/6f19f4fe6e19
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
flask请求异步执行(转载)的更多相关文章
- 详解Ajax请求(四)——多个异步请求的执行顺序
首先提出一个问题:点击页面上一个按钮发送两个ajax请求,其中一个请求会不会等待另一个请求执行完毕之后再执行? 答案是:不会,这两个异步请求会同时发送,至于执行的快与慢,要看响应的数据量的大小及后台逻 ...
- jquery 异步请求Demo【转载】
$(document).ready(function() { $.ajax({ url : "/AjaxAction/LoginArea.ashx", data : {userna ...
- [转载]在服务器端判断request来自Ajax请求(异步)还是传统请求(同步),x-requested-with XMLHttpRequest
在服务器端判断request来自Ajax请求(异步)还是传统请求(同步) 在服务器端判断request来自Ajax请求(异步)还是传统请求(同步): 两种请求在请求的Header不同,Ajax 异步 ...
- 使用SpringMVC @Async异步执行方法的笔记 (转载)
原文:http://blog.csdn.net/yuwenruli/article/details/8514393 测试代码: @RunWith(SpringJUnit4ClassRunner.cla ...
- 浅析JS异步执行机制
前言 JS异步执行机制具有非常重要的地位,尤其体现在回调函数和事件等方面.本文将针对JS异步执行机制进行一个简单的分析. 从一份代码讲起 下面是两个经典的JS定时执行函数,这两个函数的区别相信对JS有 ...
- 使用Task异步执行方法_多线程_应用程序池
偶然遇到在执行登录的方法需要发送消息队列导致登录时间过长的问题,从网上查了一些方法,先将一个简单的异步处理程序的小例子展示出来,供大家参考: 备注:该方法是从应用程序程序所在的线程池中获取线程,第一次 ...
- 昼猫笔记 JavaScript -- 异步执行 | 定时器真的定时执行?
本篇主要内容:异步.定时器引发的思考 预计阅读时间:8分钟 了解 我们都知道在js中定时器有两种 setInterval() . setTimeout() setInterval() :按 ...
- Jquery ajax 绑定multiselect多选下拉选项,同时异步执行返回值
Jquery ajax 绑定multiselect多选下拉选项,同时异步执行获取返回值 function load(mslt_employees,belongto,mark) {//传入$(#ID) ...
- php异步执行其他程序
这里的“其他程序”,可能是linux命令,可能是其他的php文件. 网上说法有四种.分别为: 1.通过加载页面的时候通过ajax技术异步请求服务器 2.通过popen()函数 3.通过curl扩展 4 ...
随机推荐
- 【Luogu4781】【模板】拉格朗日插值
[Luogu4781][模板]拉格朗日插值 题面 洛谷 题解 套个公式就好 #include<cstdio> #define ll long long #define MOD 998244 ...
- 【BZOJ5292】[BJOI2018]治疗之雨(高斯消元)
[BZOJ5292][BJOI2018]治疗之雨(高斯消元) 题面 BZOJ 洛谷 题解 设\(f[i]\)表示剩余\(i\)点生命时的期望死亡的次数. 考虑打\(k\)次下来脸上被打了\(i\)下的 ...
- H5左侧滑删除简单实现
简单的左滑删除 实现功能 在一个列表的一条中,往左滑动时,右边出现删除按钮,点击可删除这一条 实现办法 列表中一项为父div,其中包含内容div和删除按钮span 父div相对定位,设置宽度.内容di ...
- 「TJOI2015」概率论 解题报告
「TJOI2015」概率论 令\(f_i\)代表\(i\)个点树形态数量,\(g_i\)代表\(i\)个点叶子个数 然后列一个dp \[ f_i=\sum_{j=0}^{i-1} f_j f_{i-j ...
- 「SDOI2014」Lis 解题报告
「SDOI2014」Lis 题目描述 给定序列 \(A\),序列中的每一项 \(A_i\) 有删除代价 \(B_i\) 和附加属性 \(C_i\). 请删除若干项,使得 \(A\) 的最长上升子序列长 ...
- [JLOI2016/SHOI2016]侦察守卫(树形dp)
小R和B神正在玩一款游戏.这款游戏的地图由N个点和N-1条无向边组成,每条无向边连接两个点,且地图是连通的.换句话说,游戏的地图是一棵有N个节点的树. 游戏中有一种道具叫做侦查守卫,当一名玩家在一个点 ...
- Testlink解决大用例导入问题
最近公司同事需要将别的testlink的用例迁移过来,由于现在新的服务器也在使用,不能使用数据库导入的办法,只能用xml文件进行导入,不过在导入的时候出现了个没遇到的问题,报错文件太大,无法上传. 解 ...
- QML-WebEngineView加载html(Echarts绘图)
实现QML中运用webEngineView加载Echarts GitHub:八至 作者:狐狸家的鱼 本文链接:QML-WebEngineView加载Echarts 一.前言 Qt允许使用混合GUI创建 ...
- poj1442 Black Box
The Black Case 好啊! 首先,读题很艰难... 读完题,发现是求第k小的数,那么我们用splay水过对顶堆水过即可. #include <cstdio> #include & ...
- 洛谷P2375 动物园
我要死了.这是我做过的最恶心的题之一. 天下第一的大毒瘤.有gay毒. 我不如熊猫好多年... 题意:给定字符串,求g[i],表示:[0, i]中满足该子串既是前缀又是后缀还不重叠的子串数. 解:题面 ...