【发布时间】:2014-07-22 06:28:57
【问题描述】:
在我的 Django 应用程序中,我必须运行一个子进程来完成一些工作并将结果返回给客户端。我正在这样做:
def get(self, request, id=None ):
pid = os.fork()
if not pid :
# child process
result = do_some_work()
return Response(result)
else :
# I don't know what to put here
# I tried this
time.sleep(60)
我在子流程中做的工作不需要很长时间。我的代码不起作用,我试图在父进程代码中添加任何内容,但这不起作用,因为该函数不返回任何内容。所以我虽然我会等到子进程返回结果。它也不起作用,我得到IOError: failed to write data。
我该如何解决这个问题?或者我的问题有什么更好的解决方案?
【问题讨论】:
-
为什么你认为它会帮助我?它只是解释了
fork的工作原理,这不是我需要的。 -
您的问题到底是什么?如果你正在做的工作不需要很长时间,你为什么要首先分叉?
-
@ThomasFenzl 我必须在子进程中执行代码,这是我用来完成工作的软件的约束。我的问题是我的视图没有返回结果。
标签: python django subprocess django-rest-framework