python——使用线程池实现异步返回数据

框架

  • flask

应用场景

  • 当接收到请求,但数据处理比较耗时,希望请求过来时先返回一个响应,再慢慢处理数据,处理完成后再将结果返回给另一个地址。
  • 流程:接收到请求,立即返回响应。再处理数据,处理完成后将结果响应给预先定义的URL。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import traceback
import requests
from concurrent.futures import ThreadPoolExecutor
from flask import request, jsonify
 
url = "结果数据要返回的新地址URL"
 
def processing_data(data)
    print("数据处理...")
    result_data = "处理完,要返回的数据"
    try:
       requests.post(url, data=result_data, timeout=10)
   except Exception as exc:
       print(exc)
 
@extra.route("/submit", methods=['POST'])
def submit():
    data = request.get_data()
    try:
        # 创建ThreadPoolExecutor实例
        executor = ThreadPoolExecutor(max_workers=3)
        # 提交任务
        future = executor.submit(processing_data, data)
        # 接收到数据先返回响应,不需要等数据处理完再响应
        return jsonify({"status": "true", "messge": "null", "data": "null"})
    except Exception:
        print(traceback.format_exc())

  

posted @   NLP的小Y  阅读(93)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
/*粒子线条,鼠标移动会以鼠标为中心吸附的特效*/
点击右上角即可分享
微信分享提示