【问题标题】:Don't wait for POST request response Python Flask不要等待 POST 请求响应 Python Flask
【发布时间】:2018-01-15 08:17:57
【问题描述】:

在基于 Flask 的 Python 应用程序中,我正在尝试使用无限循环远程运行 bash 脚本,该脚本检查是否存在特定进程 - 如果存在,则不执行任何操作,否则运行此进程。问题是,应用程序等待 POST 响应,它永远不会。 我尝试使用 os.system 和子进程来运行这个进程。 在我的应用程序中,Python 应该只执行命令而不等待响应(或脚本结束):

os.system("ssh pizerow '/home/pi/script.sh'")

我怎样才能做到这一点?

谢谢!

【问题讨论】:

  • WGSI 应用程序(如 Flask 的设计目的)不是执行长时间运行任务的好地方,因为它总是绑定到请求响应周期。最好将检查进程的任务“外包”给系统启动服务或Supervisor

标签: python post flask request


【解决方案1】:

如果进程在前台运行,您的应用将等待进程完成。您可能想尝试在后台运行它。 试试这个:

os.system("nohup ssh pizerow '/home/pi/script.sh' >/dev/null 2>&1 &")

如果要记录输出,请将其更改为:

os.system("nohup ssh pizerow '/home/pi/script.sh' >file.log 2>&1 &")

【讨论】:

    猜你喜欢
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-24
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多