我有一个Django应用程序,它执行在后台运行的计算。计算需要5秒到2分钟。
我在芹菜上运行这些。它正在更新数据库中的表。
我每2秒在页面上进行一次DIV的autorefesh,这实质上是一个SQL查询。这意味着在显示某些数据之前会有许多不必要的SQL查询。毋庸置疑,这会增加数据库的负担。
是否有办法仅在更新表时触发刷新?
答案 0 :(得分:1)
如果将后台任务分配给特定用户,则可以使用会话数据来指示任务已完成。在您的Ajax函数中,您可以查看此会话数据,并仅在您指示已完成此操作时查看数据库:
https://docs.djangoproject.com/en/1.8/topics/http/sessions/
另一种解决方案是使用用于同步的系统文件。例如:
此文件也可以作为Url访问(以避免Ajax请求)
答案 1 :(得分:-1)