Django Ajax HttpResponse延迟

2024-03-29 14:11:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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函数终止之前,警报不会弹出


Tags: django函数view视图true进程状态ajax
1条回答
网友
1楼 · 发布于 2024-03-29 14:11:50

尽管您在return HttpResponse(success)之前看到了打印的消息,但返回语句本身不能异步完成响应。在

大概在函数返回后,web服务器仍在等待其他事情发生(例如所有子进程终止),然后才完成响应。在

对于Django中的异步任务,我强烈推荐Celery。在

相关问题 更多 >