在我的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
。
我该如何解决这个问题?或者什么是我的问题更好的解决方案?
答案 0 :(得分:0)
您需要的是卸载处理并使其异步。你不应该像在Django中那样做。
以下是可以帮助您的图书馆的良好比较:https://www.djangopackages.com/grids/g/workers-queues-tasks/