Flask服务器上的Python子进程——如何检测子进程何时终止?

Flask服务器上的Python子进程——如何检测子进程何时终止?,python,flask,subprocess,Python,Flask,Subprocess,我正在React Native中构建一个应用程序,它根据用户输入生成3D模型文件,作为其功能的一部分。该应用程序在主屏幕上从用户那里获取一个“代码”,并使用POST请求将其发送到Flask服务器,然后该服务器使用固定URI(例如/static/mod.obj)上的代码生成模型文件。然后,应用程序转换到一个单独的显示屏幕,并在该URI处获取要显示的模型文件。目前,Flask服务器在单独的子流程中为每个POST请求生成模型文件,如下所示: @app.route('/genpdb',methods=[

我正在React Native中构建一个应用程序,它根据用户输入生成3D模型文件,作为其功能的一部分。该应用程序在主屏幕上从用户那里获取一个“代码”,并使用POST请求将其发送到Flask服务器,然后该服务器使用固定URI(例如/static/mod.obj)上的代码生成模型文件。然后,应用程序转换到一个单独的显示屏幕,并在该URI处获取要显示的模型文件。目前,Flask服务器在单独的子流程中为每个POST请求生成模型文件,如下所示:

@app.route('/genpdb',methods=['POST'])
def genpdb():
# ...
subprocess.Popen(['python'、'convPDB.py'、'--code',json[“code”]])#python脚本convPDB.py从请求json中的'code'参数生成三维模型
返回json['code']#响应不返回任何重要信息;生成的模型只是托管在一个固定的uri上,例如/static/mod.obj

我使用Popen构造函数创建子流程,这样子流程就不会阻塞。但是,我希望在生成脚本完成时(即子流程终止时)以某种方式通知客户端,以便应用程序不会在模型文件实际存在之前切换到显示屏幕。服务器生成的唯一子进程是否可以通过某种方式通知请求它的客户端它已终止?

您可以尝试使用.wait()模块,您的进程可以写入其他目录,完成后将其移动到静态文件夹。现在,您的浏览器代码可以进行刷新或其他操作,直到它出现。