首页 > 解决方案 > time.sleep 阻止烧瓶请求

问题描述

我正在使用烧瓶实现服务器发送事件。如果我在函数中使用 time.sleep,则 sse 不会返回任何内容,并且请求在浏览器中保持挂起状态。如果我不使用睡眠,浏览器中的响应会过载,所以我需要使用一些延迟。为什么 time.sleep 会阻止请求?还有另一种方法可以在这里添加时间延迟吗?

def get_message():
    time.sleep(1.0)
    s="xyz" #some function here for our business logic
    return s


@app.route('/stream')
def stream():
    def eventStream():
        while True:
            yield 'data: {}\n\n'.format(get_message())
    return Response(eventStream(), mimetype="text/event-stream")

标签: flaskserver-sent-events

解决方案


推荐阅读