我正在编写一个服务器,用于使用Flask将渲染图像发送到客户端(浏览器)。由于图像可能还没有准备好(仍在渲染),因此我编写了以下代码以等待渲染线程完成
@app_autoView.route("/autoviewimgs/<origin>/<identifier>")
def autoviewimgs(origin, identifier):
if identifier in renderThreads:
renderThreads[identifier].join()
return flask.send_from_directory(f'./latentspace/autoview/{origin}', identifier + '.png')
然而,整个服务器似乎开始等待一个线程,而所有其他HTTP请求都被阻止
我不知道python线程是否适用于Flask或其他实现方法
我尝试了@ParthS007建议的芹菜,但服务器仍然被阻止,如以下代码所示:
@app_autoView.route("/autoviewimgs/<origin>/<identifier>")
def autoviewimgs(origin, identifier):
if identifier in renderThreads:
if not renderThreads[identifier].ready():
casename = renderThreads[identifier].get()
return flask.send_from_directory(f'./latentspace/autoview/{origin}', identifier + '.png')
听起来像是,你试图从用户那里接收一个请求,然后让应用程序使用线程。为此,可以使用类似于celery的方法将任务分配给工作线程
在Flask中阅读有关设计的更多信息
相关问题 更多 >
编程相关推荐