gpt4 book ai didi

python - flask 结束响应并继续处理

转载 作者:IT老高 更新时间:2023-10-28 20:55:47 31 4
gpt4 key购买 nike

Flask 中有没有办法将响应发送给客户端,然后继续进行一些处理?我有一些簿记任务要完成,但我不想让客户等待。

请注意,这些实际上是我想做的非常快的事情,因此在这里创建一个新线程或使用队列并不合适。 (这些快速的事情之一实际上是在作业队列中添加一些东西。)

最佳答案

QUICKEASY 方法。

我们将使用 pythons Thread 库来实现这一点。

您的 API 使用者已经发送了一些要处理的内容,并由 my_task() 函数处理,该函数需要 10 秒 执行。但是 API 的使用者希望在他们访问您的 API 时立即得到响应,这是 return_status() 函数。

my_task 与一个线程 em> 然后将快速响应返回给 API 使用者,而在后台,大进程会完成。

下面是一个简单的 POC。

import os
from flask import Flask,jsonify
import time
from threading import Thread

app = Flask(__name__)

@app.route("/")
def main():
return "Welcome!"

@app.route('/add_')
def return_status():
"""Return first the response and tie the my_task to a thread"""
Thread(target = my_task).start()
return jsonify('Response asynchronosly')

def my_task():
"""Big function doing some job here I just put pandas dataframe to csv conversion"""
time.sleep(10)
import pandas as pd
pd.DataFrame(['sameple data']).to_csv('./success.csv')
return print('large function completed')

if __name__ == "__main__":
app.run(host="0.0.0.0", port=8080)

关于python - flask 结束响应并继续处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17293311/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com