我有一个 web 服务启动一个可能需要一分钟的过程。我想返回一个 204,它有效地表示“我已成功收到您的请求”,但在后台运行缓慢的进程。
我正在尝试通过 fork 另一个这样的进程来做到这一点:
p = Process(target = modelObj.slowProcess)
p.start()
logger.debug('sending 204')
return HttpResponse( status=204)
这部分代码似乎执行得很好,但是却使 django 组件出错。打印了调试语句,并执行了进程,但是当我在 chrome 的调试器中查看网络流量时,它说上传状态为“已取消”。由于我没有在浏览器端取消事件,我认为这意味着连接已终止。我从来没有从服务器得到任何响应,所以我似乎以某种方式破坏了请求过程。
我如何 fork 该单独的进程并仍然交付 204?
请您参考如下方法:
评论告诉我我做错了什么。
相关请求来自正在上传文件的隐藏 iframe。在许多情况下,您可以将其视为 ajax 请求,但如果 iframe 返回 204,问题就会接踵而至。 iframe 必须返回一些内容事件,尽管没有对该内容做任何实质性的事情。
