这是一个非常新手的问题,因为我找不到示例代码。
我正在使用Flask作为Web服务。收到请求后,服务应启动后台任务并立即返回响应(不阻止客户端)。
from gevent import Greenlet
@app.route('/credit-scoring/get-score', methods=['POST'])
def handler_generate():
"""
:return:
"""
id = request.form["id"]
file = request.files['file']
name = request.form['name'].replace(" ", "_") # replace space with underscroll
green_thread = Greenlet.spawn(do_task_that_take_long_time,
name,
file,
id)
green_thread.run() # this is being block
print("meowwww")
# todo: create a task to submit data when done
result = {"errorCode": 0}
return result
但是,当我调用.run()时,似乎主线程处于阻塞状态(即:服务在线程完成之前不会返回结果。)
我想念什么?