gpt4 book ai didi

python - flask : How to make call-back function non-blocking using thread

转载 作者:行者123 更新时间:2023-11-28 17:46:34 25 4
gpt4 key购买 nike

我正在使用 Flask 框架将文本转语音系统连接到 Web。基本上网站通过文本框输入并返回音频文件。一旦在文本框中输入文本并按下下面的按钮,将调用回调。

def task_text2speech():

# call to my text to speech system
# respond to client

在上面的功能步骤“# call to my text to speech system”中大约需要 30-100 秒。在此期间客户端浏览器不会有任何响应。我想通过启动一个线程而不是在 task_text2speech 中阻塞 task_text2speech 来克服这个问题,一旦线程完成语音合成响应客户端。

对我来说,实现线程不是问题,但我不知道在上述情况下响应客户端所需的 flask 处理程序。感谢任何文档或示例实现。

最佳答案

实现此目的的一种简单、技术含量低的方法是向客户端返回一个响应,指示服务器正在处理请求,并与此同时启动线程来完成工作。您将为每个工作线程分配一个唯一的 ID。

显示“正在处理”消息的响应页面将有一个自动重定向,在 5 秒后启动。重定向将指向采用工作线程 ID 的新 Flask 路由。与此路由关联的 View 函数检查工作线程的状态,如果该线程仍在工作,它会响应相同的“正在处理”页面,以便客户端将在另外 5 秒内再次重定向。

当处理页面的重定向处理程序发现工作线程已完成时,它可以重定向到提供生成的音频文件以供下载的新页面。

希望对您有所帮助。

关于python - flask : How to make call-back function non-blocking using thread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17380444/

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