Django在请求结束之前将进度发送回客户端

时间:2018-09-02 16:24:09

标签: python django sockets http

我正在Django中开发一个应用程序,该应用程序具有一项功能,可让用户共享指向公共文件的下载链接。服务器下载文件并处理其中的信息。这可能是一项耗时的任务,因此我想在操作完成之前向用户发送定期反馈。例如,我想通知用户文件已成功下载,或者某条记录e.t.c中是否缺少某些信息。 我当时想,在客户端应用发送了上传请求之后,我可以让客户端应用定期向服务器询问状态。但是我不知道如何跟踪其他请求的进度。如何实现?

1 个答案:

答案 0 :(得分:0)

  1. 首先,进度任务信息可以保存在rdb或redis中。
  2. 使用提交请求启动任务时,您可以返回任务的ID,并且该任务可以在后台上下文中执行。
  3. 后台任务可以将任务进度信息保存在您选择的数据库中。
  4. 应用程序客户端通过后端返回的任务ID获取进度信息,后端从数据库获取进度信息并将其推送到响应中。
  5. 请求间隔可以自己定义。