Python 无法在django中创建真正的异步子进程

Python 无法在django中创建真正的异步子进程,python,django,asynchronous,subprocess,Python,Django,Asynchronous,Subprocess,因此,我有一个视图,可以发送Http post或获取。post处理程序设置为异步创建子进程,然后返回字符串。问题在于,它似乎创建了流程,继续执行代码,但在返回响应之前挂起并等待子流程完成。我怎样才能使它真正异步呢 def post(self, request): create_async_request() return HttpResponse("done") def create_async_request(): p = Popen(['ping','localhost','-c'

因此,我有一个视图,可以发送Http post或获取。post处理程序设置为异步创建子进程,然后返回字符串。问题在于,它似乎创建了流程,继续执行代码,但在返回响应之前挂起并等待子流程完成。我怎样才能使它真正异步呢

def post(self, request):
create_async_request()
return HttpResponse("done")

def create_async_request():
    p = Popen(['ping','localhost','-c','15']) #something that I know will take a couple secs

如果这是您的代码,那么它实际上不是异步的。你应该看看如何使用threading.Thread。正确的方法应该是使用芹菜之类的东西。@Sammusmann这是一个过于简化的版本。我还使用了os.fork,得到了一些奇怪的结果,在post中添加了一条打印消息,并验证了该消息是在ping发生时打印的。这个异步系统调用与django有什么关系吗?或者这只是一般的python?如果你想异步执行,你需要在另一个线程中调用它,或者使用芹菜之类的东西。这更像是一个一般的python问题,尽管芹菜是使用django时常见的解决方案。