python在flask中的请求数据“无限流”

文章目录

一、问题描述

在flask请求中,有个需求是让调用方一直调接口,并立马返回,而接口方缓存请求,依次执行。

二、解决方案

python 复制代码
from flask import Flask, request, jsonify
from queue import Queue
import threading

app = Flask(__name__)
request_queue = Queue()

def process_requests():
    while True:
        if not request_queue.empty():
            request_data = request_queue.get()
            # 在这里处理请求数据,可以调用相应的函数进行处理
            print("Processing request:", request_data)
            # 在这里处理完请求后,可以返回响应给客户端,也可以不返回
        else:
            # 如果队列为空,等待一段时间后继续检查
            # 这里可以根据实际需求调整等待时间
            threading.Event().wait(1)

@app.route('/receive_request', methods=['POST'])
def receive_request():
    request_data = request.json
    # 将请求数据放入队列中
    request_queue.put(request_data)
    return jsonify({'message': 'Request received and queued.'})

if __name__ == '__main__':
    # 启动一个线程来处理请求
    request_handler_thread = threading.Thread(target=process_requests)
    request_handler_thread.start()
    # 启动 Flask 应用
    app.run(debug=True)

注意: 需要注意的是,request_queue.get()之后队列里的值就直接推出了,不用显式推出。

以上就可以做到讲请求立刻返回,接口缓存请求内容自我"消化"。Enjoy~

∼ O n e p e r s o n g o f a s t e r , a g r o u p o f p e o p l e c a n g o f u r t h e r ∼ \sim_{One\ person\ go\ faster,\ a\ group\ of\ people\ can\ go\ further}\sim ∼One person go faster, a group of people can go further∼

相关推荐
cdut_suye5 分钟前
STL之list篇(上)初识list容器,了解其核心机制,实例化对象进行分析
开发语言·c++·学习·算法·stl·list
南宫理的日知录7 分钟前
84、Python之鸭子类型:魔术方法&自定义类型也可以实现加减乘除
开发语言·python·学习·编程学习
界面开发小八哥8 分钟前
「Qt Widget中文示例指南」如何实现一个平板电脑示例?(一)
开发语言·c++·qt·界面控件·ui开发
吃点李子9 分钟前
QQ机器人搭建
python·机器人
AI算法董同学14 分钟前
VS Code 配置 Anaconda Python 环境
开发语言·windows·vscode·python·编辑器
deephub22 分钟前
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
人工智能·python·机器学习·numpy·sklearn·特征工程
s_little_monster22 分钟前
【C++】继承(下)
开发语言·c++·经验分享·笔记·学习·学习方法
林九生24 分钟前
【Golang】(推荐项目)Go后端工程项目
开发语言·后端·golang
聪根大牛成长日记!25 分钟前
STL容器之----string的常见接口介绍及模拟实现部分接口(c++)
开发语言·c++
重生成为码农‍26 分钟前
Java高级Day52-BasicDAO
java·开发语言·windows