我有一个Flask服务器,我正在尝试在后台运行脚本以在树莓派上启用配对过程。我有一个按钮可以启用和禁用它,效果很好。
我使用process = subprocess.Popen(["python3","bt.py"])
运行该进程,然后在需要停止它时运行process.kill()
。
但是一旦任务停止,我需要用新的设备信息更新页面,但是我无法检测到何时通过烧瓶停止了配对脚本。我知道我可以运行process.poll()
来检查子进程是否仍在运行,但是我无法想到将其实现到flask的任何方法,因为它需要循环运行,这将阻止客户端接收页面。
我认为唯一可行的方法是从bt.py
脚本中编辑文件,并让我的flask应用程序的JS部分检测文件中的更改并引起重定向。但是,这似乎很笨拙,而且感觉不好。任何建议都会很棒
听起来您可能需要一个任务队列。这里的一些选项是Celery,RabbitMQ或Redis。这是您可以用来开始的a helpful blog post。