如何在flask中运行一个脚本而又不使前端无响应?

我在flask中运行了一个shell脚本,现在的问题是这个shell脚本耗时非常长,运行期间会导致前端web无响应,必须等到脚本执行完。请问有什么办法可以解决?我试过了用ajax,没用,因为调用ajax的url去执行脚本时仍然会导致页面卡住。我也试过开多线程app.run(thread=true),这样虽然可以解决,但是需要新开一个网页,我想问下是否有更好的办法....另外这个脚本只是单纯的在后台运行即可,相关回显不需要渲染到前端。

阅读 6.5k
3 个回答

任何软件工程遇到的问题都可以通过增加一个中间层来解决

你可以通过 @xdd1874 所说的方法,你可以使用 nohup,反正是只要能启动了你的 shell 的工具都行。

flask view里面调用subprocess.Popen去执行脚本,subprocess会生成一个子进程去执行脚本,可以立即返回

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进