Skip to main content
 首页 » 编程设计

python之在 django View 中 fork 一个进程

2025年05月04日38hnrainll

我有一个 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 必须返回一些内容事件,尽管没有对该内容做任何实质性的事情。