Django轮询导入脚本 - 需要用户状态更新。使用型号?会议?

时间:2017-03-21 19:12:05

标签: ajax django session

我有一个用户上传文件的应用程序,然后我会处理这些文件的处理。这个过程可能需要几分钟,所以我想定期向用户发送有关正在发生的事情的更新。

现在我正在考虑将Ajax轮询实现到呈现json的视图。问题是我目前没有这种视图的机制来获取状态数据。对于像状态更新这样的东西,将它放入模型以供访问视图似乎很奇怪,但这是最佳路线吗?我最好选择不同的路线,例如将状态数据存储在用户会话中吗?

1 个答案:

答案 0 :(得分:1)

我没有看到您的后台处理更新的Job模型的问题,以及您的JavaScript轮询的视图。它在未来的分析中可能也很有用 - 例如,您可以跟踪特定大小的文件的平均处理时间。

大概是这样的:

class Job(models.Model):
     user = models.ForeignKey('User', related_name='jobs')
     status = models.CharField(max_length=255)
     created_on = models.DateTimeField(auto_now_add=True)
     updated_at = models.DateTimeField(auto_now=True)

然后,在文件上传时,创建一个新的Job,并将其传递给您的前端,以便它可以轮询您创建的作业状态视图。