角度HTTP POST请求获胜';不要停止等待python子进程

角度HTTP POST请求获胜';不要停止等待python子进程,python,angularjs,python-3.x,Python,Angularjs,Python 3.x,我有一个客户端发出的AngularJS http post请求,该客户端在服务器上发布到handleRequest.py。 根据发布的数据,它然后作为分离的子进程运行各种数据库查询和过程 生成子流程的代码如下所示: CREATE_NEW_PROCESS_GROUP = 0x00000200 DETACHED_PROCESS = 0x00000008 p = subprocess.Popen( [ sys.executable, "executeOracleProcedu

我有一个客户端发出的AngularJS http post请求,该客户端在服务器上发布到handleRequest.py。 根据发布的数据,它然后作为分离的子进程运行各种数据库查询和过程

生成子流程的代码如下所示:

CREATE_NEW_PROCESS_GROUP = 0x00000200
DETACHED_PROCESS = 0x00000008

p = subprocess.Popen( [
      sys.executable,
      "executeOracleProcedure.py"
      ] + args,
      stdout=logfile, stderr=logfile, stdin=logfile,
      creationflags=DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP)
然后,handleRequest.py通过打印一个响应来响应客户机,告诉他们他们执行了该过程

print("Content-type: application/json")
print("Status: " + status + " " + status_text + "\n")
print(json)
然后应退出handleRequest.py。让其子进程运行,因为运行过程需要很长时间

添加一些日志后,我确认子进程似乎正在运行。然而,尽管handleRequest.py似乎已经结束,但客户端似乎仍在等待子进程完成(并最终因过程耗时而超时)


我已经尝试过用sys.stdout.flush()和sys.exit()轰炸它,以尝试100%确保handleRequest.py给出正确的输出并退出,并且据我所知。那么,我是否可以让客户端在收到打印的响应后立即停止等待响应?

好的,所以问题是由我尝试记录问题引起的

他对一个问题的回答是什么给了我通风报信。这就是我得到的答案

简单地说,我的管道“stdout=logfile,stderr=logfile,stdin=logfile”告诉python我希望继续与子进程通信

移除管道修复了问题