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

在这里插入图片描述

一、问题描述

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

二、解决方案

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

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-21 14:28:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-21 14:28:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-21 14:28:02       82 阅读
  4. Python语言-面向对象

    2024-02-21 14:28:02       91 阅读

热门阅读

  1. GET和POST两种HTTP 方法比较

    2024-02-21 14:28:02       51 阅读
  2. pytorch使用文档

    2024-02-21 14:28:02       37 阅读
  3. 代码随想录算法训练营第五十一天| 139.单词拆分

    2024-02-21 14:28:02       56 阅读
  4. Selenium Grid4.0 - 多台计算机上并行运行

    2024-02-21 14:28:02       55 阅读
  5. 本地项目如何连接远程git库

    2024-02-21 14:28:02       40 阅读