我的应用程序中有使用Django框架的代码:
import os, time
def get(self, request, id=None):
pid = os.fork()
if pid == 0:
self.run()
time.sleep(600)
else:
time.sleep(20)
return write_response()
我创建了一个子进程,它将创建将返回的数据。我真的需要做一个儿童过程的工作。函数run
使用外部软件来计算要返回的数据。如果我不创建新进程,则只有第一个请求成功(外部软件约束)。
子进程大约需要10秒才能完成工作。父级等待20秒,然后使用子级计算的数据返回响应。对于客户来说一切正常。在服务器中,我得到异常(Broken pip
)。
当子进程继续执行时,客户端已关闭套接字,因此引发异常。我该怎么做才能解决我的问题?