我有一个django view函数,它调用另一个函数如果一个条件为真,该函数作为一个单独的进程调用,视图返回一个状态变量来显示该函数是否被调用,状态将返回到分配给按钮的ajax click事件。
问题是,当函数'do'u work'执行时,ajax成功函数在'do'u work'终止之前不会运行。在
查看功能/更新/
if condition:
p = Process(target=do_work, args(pack,))
p.daemon = True
p.start()
success = "True"
else:
success = "False"
print success
return HttpResponse(success)
Ajax调用
^{pr2}$在这两种情况下,“print success”都会立即执行,但在dowoks函数终止之前,警报不会弹出
尽管您在
return HttpResponse(success)
之前看到了打印的消息,但返回语句本身不能异步完成响应。在大概在函数返回后,web服务器仍在等待其他事情发生(例如所有子进程终止),然后才完成响应。在
对于Django中的异步任务,我强烈推荐Celery。在
相关问题 更多 >
编程相关推荐