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

问题描述 投票:0回答:1

我有一个Flask服务器,我正在尝试在后台运行脚本以在树莓派上启用配对过程。我有一个按钮可以启用和禁用它,效果很好。

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

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

我认为唯一可行的方法是从bt.py脚本中编辑文件,并让我的flask应用程序的JS部分检测文件中的更改并引起重定向。但是,这似乎很笨拙,而且感觉不好。任何建议都会很棒

python flask subprocess
1个回答
0
投票

听起来您可能需要一个任务队列。这里的一些选项是Celery,RabbitMQ或Redis。这是您可以用来开始的a helpful blog post

© www.soinside.com 2019 - 2024. All rights reserved.