首页 > 其他 > 详细

flask 异步接口

时间:2021-03-03 19:13:10      阅读:2      评论:0      收藏:0      [点我收藏+]

现有一需求:
前端请求某接口,当该接口中存在耗时的逻辑处理,但前端请求该接口请求时要求立马返回结果,而不是处理卡住等待接口的结果,此时需要做成异步的效果。如下:


from threading import Thread
from functools import wraps
from flask import Flask, jsonify
app = Flask(__name__)


def asyncz(f):
	wraps(f)
	def wrapper(*args, **kwargs):
		thr = Thread(target=f, args=args, kwargs=kwargs)
		thr.start()
	return wrapper


@asyncz
def long_task():
	"""耗时处理逻辑

	:return:
	"""
	import time
	time.sleep(5)
	print(‘长时间处理‘)
	print(‘更新状态‘)
	print(‘OK‘)


def insert_data():
	print(‘插入记录‘)
	return ‘插入成功‘


@app.route(‘/test‘)
def index():

	# 同步执行插入
	res = insert_data()
	print(‘插入:‘, res)

	# 耗时处理逻辑
	long_task()

	# 同步返回结果
	result = {‘code‘: ‘000000‘, ‘message‘: ‘message‘, ‘data‘: {}}
	return jsonify(result)


if __name__ == ‘__main__‘:
	app.run(debug=True)

postman请求:
技术分享图片

结果:
技术分享图片

以上。

flask 异步接口

原文:https://www.cnblogs.com/lovebkj/p/14474957.html

(0)
(0)
   
举报
评论 一句话评论(0
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号