在Django视图中创建子进程并将结果返回给客户端

时间:2014-06-02 07:34:45

标签: python django subprocess django-rest-framework

在我的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

我该如何解决这个问题?或者什么是我的问题更好的解决方案?

1 个答案:

答案 0 :(得分:0)

您需要的是卸载处理并使其异步。你不应该像在Django中那样做。

以下是可以帮助您的图书馆的良好比较:https://www.djangopackages.com/grids/g/workers-queues-tasks/