使用django中的celery和ajax动态更新网页

时间:2012-06-25 21:50:28

标签: ajax django celery

我需要向用户显示一些分析;然而,偶尔这些分析可能需要一段时间来处理(有时2-5秒)。我不想等待这些结果,而是希望在网页上以动态的方式更新它们。

我已经以有限的方式实施了芹菜,但我想做的是将一些任务发送到芹菜,让屏幕渲染,一旦功能完成,将返回值发送到网页到udpated。

创建任务后,我应该监控其状态吗?或者一旦完成任务,我可以直接将json发送到网页吗?一些代码示例会有所帮助。

谢谢。

1 个答案:

答案 0 :(得分:1)

使用django很难做到“推送”数据。它本身不受支持,解决方案充其量只是hacky。

有更简单的选项,最受欢迎的是ajax民意调查。

  1. 用户可以设置执行分析的请求。

  2. django将流程排队并将其标记为存储中的处理

  3. 用户每x秒拨打一次请求状态请求的ajax。

  4. 请求完成后,存储会更新以反映此情况,下一个轮询请求可以检索相应的数据。

  5. HTML5本机支持基于套接字的通信。但是django不支持它。

    Django Push HTTP Response to users