利用gevent实现web服务先返回结果然后在处理数据
一、功能:
web服务中,先将success结果返回给前台 然后在执行具体的数据处理函数
二、运行:
step1:/usr/local/lib/python3/bin/gunicorn -k gevent run:app -b 0.0.0.0:9000 -w 8
step2:然后另起终端执行 curl http://127.0.0.1:9000/demo
三、脚本demo:
vim run.py
from flask import Flask
import gevent
import time
app = Flask(__name__)
def aaa(data):
time.sleep(5)
print(f"处理函数接收参数: {data}")
print("子线程处理函数处理完毕")
@app.route('/demo',methods=['GET'])
def demo():
gevent.Greenlet.spawn(aaa,("argument_data"))
return "success\n"
四、另一种实现方式:
利用threading的方式实现以上功能
vim run.py
from flask import Flask
import threading
import time
app = Flask(__name__)
def aaa(data):
time.sleep(5)
print(f"处理函数接收参数: {data}")
print("子线程处理函数处理完毕")
@app.route('/demo',methods=['GET'])
def demo():
a_thread = threading.Thread(target=aaa,args=("argument_data",))
a_thread.start()
return "success\n"