Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用flask启动后台进程,然后检测它何时停止_Python_Flask_Subprocess - Fatal编程技术网

Python 使用flask启动后台进程,然后检测它何时停止

Python 使用flask启动后台进程,然后检测它何时停止,python,flask,subprocess,Python,Flask,Subprocess,我有一个flask服务器,我正试图在后台运行一个脚本,以便在raspberry pi上启用配对过程。我有一个按钮来启用和禁用这项工作的罚款 我使用process=subprocess.Popen([“python3”,“bt.py”])运行进程,然后在需要停止它时使用process.kill() 但是一旦任务停止,我需要用新的设备信息更新页面,但是我无法通过flask检测配对脚本何时停止。我知道我可以运行process.poll()来检查子流程是否仍在运行,但我想不出任何方法来将其实现到flas

我有一个flask服务器,我正试图在后台运行一个脚本,以便在raspberry pi上启用配对过程。我有一个按钮来启用和禁用这项工作的罚款

我使用
process=subprocess.Popen([“python3”,“bt.py”])
运行进程,然后在需要停止它时使用
process.kill()

但是一旦任务停止,我需要用新的设备信息更新页面,但是我无法通过flask检测配对脚本何时停止。我知道我可以运行
process.poll()
来检查子流程是否仍在运行,但我想不出任何方法来将其实现到flask中,因为它需要在循环中运行,这将阻止客户端接收页面


我认为唯一可行的方法是从
bt.py
脚本编辑一个文件,让我的flask应用程序的JS部分检测文件中的更改并导致重定向。然而,这看起来很笨拙,感觉像是糟糕的练习。任何建议都很好

听起来您可能需要的是一个任务队列。这里的一些选项是芹菜、RabbitMQ或Redis。这是你可以用来开始的。这能回答你的问题吗?我将查看任务队列。另外,这篇文章没有回答我的问题,因为它不需要脚本持续运行。我试图运行的脚本需要在while循环中运行大约30秒